如何设置android:ellipsize两个属性,即end&选取框?

时间:2015-06-08 10:50:04

标签: android listview android-listview

我在listview中设置android:ellipsize时遇到问题。实际上根据我的要求,当textview(在列表视图行xml文件中)有32个字符时,它应该附加" ..."在最后,当用户专注于该列表项时,它应该自动水平滚动(这是选框)

android:id="@+id/navigation_item_text"
        style="@style/PlaylistNavigationText"
        android:layout_width="204dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:scrollHorizontally="true"
        android:ellipsize="end"
        android:paddingLeft="20dp"
        android:singleLine="true"
        android:layout_marginRight="42dp"

我尝试过几种方法: 1)手动设置android:ellipsize =" end"在布局文件和listview的setOnItemSelectedListener语法完成

TextView titleTextView= (TextView) view.findViewById(R.id.navigation_item_text);
                titleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);

但问题是这种情况不会再次变为......

2)尝试在listview适配器上尝试在textview

上使用focuschangelistener
if (hasfocus){
titleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
}else{
titleTextView.setEllipsize(TextUtils.TruncateAt.END);
}

没有任何作用。任何建议都会受到欢迎。感谢

1 个答案:

答案 0 :(得分:0)

1)在布局文件中设置android:ellipsize="end"

android:id="@+id/navigation_item_text"
    style="@style/PlaylistNavigationText"
    android:layout_width="204dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:paddingLeft="20dp"
    android:singleLine="true"
    android:layout_marginRight="42dp"

2)调用TextView类的setSeletected(true)

    if (hasfocus){
        titleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        titleTextView.setSelected(true);
    }

通过这种方式,您将获得结果