TextView ellipsize не работает над maxLines = 1
Я действительно не могу понять, почему, но я могу только получать эллипсис, работая над maxLines=2
и более. Я показываю несколько слов описания, а затем длинную строку без пробелов.
Вот как выглядит TextView:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="#757575"
android:text="@string/gcm_not_registered"
android:maxLines="1"
android:ellipsize="end"
android:id="@+id/login_gcmRegistrationTextView"/>
Затем я программно устанавливаю для него текст, но в зависимости от ограничения maxLines получаю два разных результата:
![maxLines=1]()
![maxlines=2]()
Единственное, что изменилось, это maxLines
, почему же строка не заполнена первым изображением?
Ответы
Ответ 1
Есть два способа исправить это:
- Попробуйте изменить атрибут
android:ellipsize="end"
на android:ellipsize="marquee"
.
- Попробуйте удалить атрибуты
android:maxLines="1" android:ellipsize="end"
и добавить атрибут android:singleLine="true"
.
Ответ 2
Этот код работает для меня:
В xml add:
- Атрибут
ellipsize
: marquee
- Атрибут
lines
: 1
В java:
<yourTextView>.setHorizontallyScrolling(true);
<yourTextView>.setSelected(true);
Если есть другой элемент, запрашивающий "фокус", вы теряете эффект выделения. Для textView
необходимо выбрать состояние, чтобы предотвратить это.