我在哪里可以为ListView控件设置ellipsize属性?

时间:2013-06-03 02:55:20

标签: android

在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" />

2 个答案:

答案 0 :(得分:0)

对ListView进行椭圆化甚至没有任何意义。相反,您需要在您为适配器中的列表项充气的布局中的任何TextView上设置ellipsize属性。

答案 1 :(得分: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:ellipsize,然后将该布局传递给适配器。

请务必使用@android:id/text1作为android:id的{​​{1}},因为这是适配器用来查找它的内容。