I am facing problem while setting android:ellipsize in listview. Actually as per my requirement when textview(in list view row xml file) is having 32 characters it should append "..." at the end and when user has focus on that list item then it should auto scroll horizontally (which is marquee)
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"
I have tried few approaches: 1) manually set android:ellipsize="end" in layout file and in listview's setOnItemSelectedListener pragrammatically done that
TextView titleTextView= (TextView) view.findViewById(R.id.navigation_item_text);
titleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
But the problem is that case it will not change to ... again.
2) Tried On listview adapter tried focuschangelistener on textview
if (hasfocus){
titleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
}else{
titleTextView.setEllipsize(TextUtils.TruncateAt.END);
}
Nothing works. Any suggestion will be welcomed. Thanks
1) Set
android:ellipsize="end"
in layout file2) Call setSeletected(true) of TextView class
This way you will get your result