我在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
上使用focuschangelistenerif (hasfocus){
titleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
}else{
titleTextView.setEllipsize(TextUtils.TruncateAt.END);
}
没有任何作用。任何建议都会受到欢迎。感谢
答案 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);
}
通过这种方式,您将获得结果