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=1maxlines=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 необходимо выбрать состояние, чтобы предотвратить это.