Подтвердить что ты не робот

TextView Ellipsize (...) не работает

Я хочу, чтобы один выровненный TextView отображал 3 точки в конце, когда текст длиннее TextView. Я не знаю, почему, но я не понимаю.

Я уже оборачивал голову вокруг похожих вопросов StackOverflow, но у меня не было никакого решения. Может быть, у кого-то есть полезные подсказки.

<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    android:orientation="vertical">

    <TextView 
        android:textStyle="bold" 
        android:text="Full Name" 
        android:layout_height="wrap_content" 
        android:textSize="16sp"
        android:layout_width="wrap_content" 
        android:id="@+id/lName"
        android:layout_gravity="center_vertical" 
        android:maxLines="1"
        android:ellipsize="end"/>
</LinearLayout>

Верхняя часть LinearLayout вложена в 2 других LinearLayouts. Может быть, это важно знать. Я уже пробовал атрибут "singleLine", но некоторые говорят, что это устарело, и он все равно не работает.

4b9b3361

Ответ 1

Добавьте в свой файл стилей следующие стили (обычно styles.xml):

<style name="autoscroll">
    <item name="android:singleLine">true</item>
    <item name="android:ellipsize">marquee</item>
    <item name="android:marqueeRepeatLimit">marquee_forever</item>
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:scrollHorizontally">true</item>
</style>

Затем добавьте стиль @style/autoscroll к вашему TextView:

<TextView android:id="@+id/lName"
      style="@style/autoscroll" />

Вы можете легко использовать функцию автопрокрутки, когда захотите.

Ответ 2

Добавьте это в свой xml для TextView:

        android:maxWidth="200dp" 
        android:maxLines="1" 

As

        android:singleLine="true"  

устарел.

Ответ 3

android:id="@+id/lName" android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:singleLine="true"
    android:text="Avinljhakjhsajkhakjshda"
    android:textSize="16sp"

Ответ 4

Он работает с singleLine="true", но этот атрибут теперь устарел, вместо этого используйте эллипсис и scrollHorizontally="true".