Intereting Posts
Как отклонить DialogFragment при нажатии вне диалогового окна? Phonegap 3 – Оповещение о том, что если я нажму ok, то произойдет сбой broswer Как центрировать текстовое изображение внутри линейного выхода Каков правильный способ реализации AsyncTask? Статический или нестатический вложенный класс? Как сделать копию файла в android? Ошибка при установке патчей для перезапуска при запуске приложения для Android с Android Studio 2.0 Когда устанавливать хранилище ключей и когда устанавливать только сертификат, завернутый в хранилище ключей Доступный статус и состояние состояния Android – открыть навигационный ящик, нажав значок приложения? Глобальный поиск не работает в Android 4.4 Ошибка: О, о! ENOENT, нет такого файла или каталога '<meteor-app> /. Meteor / local / cordova-build / platform / android / local.properties' Невозможно сделать двухсторонний просмотр с двумя строками Android BLE, характеристики чтения и записи Переключение назад / передняя камера на лету Android: доступ к файлу базы данных sqlite для файлов с расширением .sqlite

Программно создавать TextView с многоточием

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

Псевдокод:

tv.setEllipsize(TextUtils.TruncateAt.END); tv.setHorizontallyScrolling(false); tv.setSingleLine(); 

Вышеприведенные работы GREAT.

  tv.setEllipsize(TextUtils.TruncateAt.END); tv.setHorizontallyScrolling(false); tv.setMaxLines(1); 

Это не работает. Это ошибка? Я не понимаю, почему я не могу получить текст для эллипсов в конце при указании maxLines, особенно maxLine из 1, но setSingleLine в порядке.

Solutions Collecting From Web of "Программно создавать TextView с многоточием"

setSingleLine() или setSingleLine(true) позволяет TextView изменять высоту до большего количества строк и заставляет TextView игнорировать разрывы строк (символ \n в строке).

setMaxLines(int n) отображает первые n строк строки, отображаемых в TextView, которые разделены разрывом строки.

Например, пусть String будет «моей первой строкой \ n и моей второй строкой \ n и третьей»

  • setSingleLine() позволяет отображать TextView «моя первая строка и моя ..», поскольку ширина экрана превышена и
  • setMaxLines(1) приводит к «моей первой строке»
  • setMaxLines(2) приводит к «моей первой строке» и под строкой «Моя вторая строка»,
  • setMaxLines(3) очевидно, не влияет на эту setMaxLines(3) строку.

Обновление: это должно работать для «setDoubleLine с усечением»:

 // optional: string.replace("\n",""); or string.replace("\n"," "); tv.setSingleLine(false); tv.setEllipsize(TextUtils.TruncateAt.END); int n = 2; // the exact number of lines you want to display tv.setLines(n);