TextView's ellipsize not working on maxLines = 1

前端 未结 3 806
梦毁少年i
梦毁少年i 2021-01-05 04:31

I really cannot figure out why, but I am only able to get ellipsize working on maxLines=2 and more. I am displaying a few words of description and then a long s

相关标签:
3条回答
  • 2021-01-05 04:46

    Actually the problem is with the spannable text, if you set spannable text this wouldn't work. Other than this below code works for me

    <TextView
        android:id="@+id/tv_second"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        android:layout_margin="5dp"
        android:padding="5dp"
        android:fontFamily="sans-serif-condensed"
        android:textColor="#b3277b"
        android:background="#f7ecff"
        android:layout_below="@id/tv"
        android:text="This is first line\nThis is second line\nThis is third line"
        android:ellipsize="end"
        android:maxLines="2"
        />
    
    0 讨论(0)
  • 2021-01-05 04:48

    This code works for me:

    In the xml add:

    • Attribute ellipsize: marquee
    • Attribute lines: 1

    In java:

    <yourTextView>.setHorizontallyScrolling(true);
    <yourTextView>.setSelected(true);
    

    If there is another item that request the "focus" you lose the marquee effect. The textView need the state selected to prevent this.

    0 讨论(0)
  • 2021-01-05 04:53

    There are two ways to fix it:

    1. Try to change android:ellipsize="end" attribute to android:ellipsize="marquee".
    2. Try to remove android:maxLines="1" android:ellipsize="end" attributes and add android:singleLine="true" attribute.
    0 讨论(0)
提交回复
热议问题