Могу ли я ограничить количество символов TextView?
теперь у меня есть список элементов TextView. каждый элемент TextView отображает текст (длина текста варьируется от 12 слов до 100+). Я хочу, чтобы эти текстовые представления отображали часть текста (скажем, 20 слов или примерно 170 символов).
Как ограничить TextView фиксированным количеством символов?
7 ответов:
вот пример. Я ограничиваю размер с атрибутом maxLength, ограничиваю его одной строкой с атрибутом maxLines, а затем использую ellipsize=end для добавления "..."автоматически до конца любой линии, которая была отключена.
<TextView android:id="@+id/secondLineTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:maxLength="10" android:ellipsize="end"/>
Если вы не заинтересованы в xml-решениях, возможно, вы можете сделать это:
String s="Hello world"; Textview someTextView; someTextView.setText(getSafeSubstring(s, 5)); //the text of someTextView will be Hello...
public String getSafeSubstring(String s, int maxLength){ if(!TextUtils.isEmpty(s)){ if(s.length() >= maxLength){ return s.substring(0, maxLength); } } return s; }
вы можете использовать метод setEllipsize класса TextView http://developer.android.com/reference/android/widget/TextView.html#setEllipsize(android.text.TextUtils.TruncateAt)
с константами класса TextUtil для добавленных точек подвеса http://developer.android.com/reference/android/text/TextUtils.TruncateAt.html
Как упоминалось в https://stackoverflow.com/a/6165470/1818089 & https://stackoverflow.com/a/6239007/1818089, используя
android:minEms="2"должно быть достаточно для достижения цели, указанной выше.
можно расширить класс TextView и перезаписать функцию setText (). В этой функции вы проверяете длину текста или слово cound.
Comments