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
", но некоторые говорят, что это устарело, и он все равно не работает.
Ответы
Ответ 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"
.