我在 ListView 中有一些自定义元素,据了解,每个元素只是 LinearLayout 中的一个 TextView。当文本太长时,我希望 TextView 中的文本是水平滚动的单行。我阅读了很多关于此的帖子,并想出了一个应该可以工作的解决方案,但是我没有让全文滚动,而是将文本剪切到包含视图的长度并以三个点结尾。我不想要三个点,但需要滚动整个文本。
这是列表中项目的布局 (list_item.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listItem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/list_item_selector"
android:orientation="horizontal"
android:paddingBottom="7dp"
android:paddingLeft="15dp"
android:paddingTop="7dp" >
<TextView
android:id="@+id/listText"
style="@style/Text_View_Style_White"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:padding="3dp"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textColor="@drawable/list_item_text_selector" />
</LinearLayout>
我也尝试了android:focusable="true"
,android:scrollHorizontally="true"
和android:maxLines="1"
属性,但它们都不起作用。在getView()
适配器(扩展 BaseAdapter)的方法中,我setSelected(true)
在返回视图之前使用 TextView 上的方法。
我无法弄清楚问题是什么。任何帮助将不胜感激。