单行内的文本在Horizo​​ntalScrollView里面的ListView里面的TextView被截断

时间:2017-06-24 01:48:09

标签: android listview textview horizontalscrollview

我正在尝试几个小时来摆脱以下问题,我搜索并应用我在这里和其他网站上找到的方法,但结果仍然很糟糕。请查看以下屏幕截图:Screenshot of cut off text

这是我的xml部分:

<HorizontalScrollView
    android:layout_width="367dp"
    android:layout_height="355dp"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="0dp"
    android:layout_marginTop="8dp"
    android:fillViewport="true"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btn_search">

    <ListView
        android:id="@+id/listView_results"
        style="@android:style/Widget.DeviceDefault.Light.ListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="16dp"
        android:background="@android:color/black"
        android:clickable="true"
        android:divider="@android:color/holo_orange_light"
        android:dividerHeight="1dp"
        android:scrollbars="horizontal|vertical"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btn_search" />
</HorizontalScrollView>

这就是我在Java文件中编写的内容:

`

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, titleList) {

            @Override                
            public View getView(int position, View convertView, ViewGroup parent){

            // Get the Item from ListView

            View view = super.getView(position, convertView, parent);
            TextView tv = (TextView) view.findViewById(android.R.id.text1);

            // Set the text size in ListView for each item
            tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP,40);
            tv.setSingleLine(true);
            tv.setMaxLines(1);
            tv.setHorizontallyScrolling(true);
            tv.setHorizontalScrollBarEnabled(true);
            //tv.setEllipsize(MARQUEE);
            //tv.setMarqueeRepeatLimit(1000);


            // Return the view
            return view;
        }
    };`

正如您所看到的,我已经尝试过选框选项,但它没有显示任何效果。 任何人都可以,如果他/她知道在哪里阅读有关可能的解决方案,因为我找到的来源根本无法帮助我。如果您有任何建议,我很乐意阅读它们。我想提前感谢任何人的帮助。这是一个大学项目和我的第一个Android应用程序 - 这里和那里有一些并发症^^。

我想知道TextView或ListView或Horizo​​ntalScollView是否有宽度限制,如果是,那么可以扩展它,如果这是一个选项。

干杯 Durim

2 个答案:

答案 0 :(得分:0)

尝试

android:layout_width="wrap_content"

在listview上的

答案 1 :(得分:0)

我现在找到了答案。

Horizo​​ntalScrollView创建了一个可滚动的容器,其宽度与ListView的第一个条目完全相同。

我发现的解决方案:

<强> 1) 您将最长的行放在列表的第一位(取决于所使用的字体系列,它仍然可能会出现问题)。

<强> 2) 我为ListView中的所有TextView设置了字体系列为“MONOSPACE”,并在第一行添加了空格“”,使其字符数等于最长行的字符数。

我希望有一天能帮到任何人。如果您对此主题有任何疑问,请与我们联系。 干杯