0

在 TextView 控件中,我可以设置 android:singleLine="true" 和 android:ellipsize="end" 来截断一个长字符串,但是我不知道如何设置 ListView 控件的属性,你能帮我吗?谢谢!

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:background="#DDDDDD"
    android:layout_weight="1" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ellipsize="end"
    android:singleLine="true"
    android:text="This is a web This is a web This is a web This is a web I will go to school" />
4

2 回答 2

0

省略 ListView 甚至没有任何意义。相反,您需要在为适配器中的列表项膨胀的布局中的任何 TextView 上设置 ellipsize 属性。

于 2013-06-03T03:33:22.670 回答
0

当您通过执行创建适配器时

new SimpleCursorAdapter(this, android.R.layout.simple_list_item_multiple_choice,
    cur, cols, views);

您正在传递将用于显示文本的布局文件。

从 SDK v17 开始,该布局文件如下所示:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeightSmall"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
/>

请注意,文本不是椭圆的。

不要传入该布局,而是创建您自己的类似布局文件,使用android:ellipsizeset,然后将该布局传递给适配器。

确保@android:id/text1用作android:idTextView,因为这是适配器用来查找它的。

于 2013-08-07T02:12:18.120 回答