我現在擁有的是一個TextView元素的ListView。每個TextView元素都顯示一個文本(文本長度從12個字改爲100+)。我想要的是讓這些TextView顯示文本的一部分(比如說20個字或大約170個字符)。我可以限制TextView的字符數嗎?
如何將TextView限制爲固定數量的字符?
我現在擁有的是一個TextView元素的ListView。每個TextView元素都顯示一個文本(文本長度從12個字改爲100+)。我想要的是讓這些TextView顯示文本的一部分(比如說20個字或大約170個字符)。我可以限制TextView的字符數嗎?
如何將TextView限制爲固定數量的字符?
下面是一個例子。我使用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"/>
您可以擴展TextView類並覆蓋setText()函數。 在這個功能中,你可以檢查文本長度或單詞cound。
比計算文本長度或單詞更好的方法更好的方法是使用「maxLines」屬性和「ellipsize」屬性來獲得所需的效果。 – kapilgm 2015-11-23 09:13:17
可以使用的TextView類 http://developer.android.com/reference/android/widget/TextView.html#setEllipsize(android.text.TextUtils.TruncateAt)
的setEllipsize方法隨着TextUtil類的常量以增加懸掛點 http://developer.android.com/reference/android/text/TextUtils.TruncateAt.html
使用下面的代碼中的TextView
android:maxLength="65"
享受...
如果你的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;
}
如https://stackoverflow.com/a/6165470/1818089 & https://stackoverflow.com/a/6239007/1818089提到,使用
android:minEms="2"
應足以實現上述目標。
什麼是'ellipsize = marquee'? – iTurki 2012-02-05 14:22:24
「,然後使用ellipsize = marquee將」...「自動添加到任何行的末尾」 – Booger 2012-02-05 14:27:06
聽起來很有希望。我會試一試。 – iTurki 2012-02-05 14:31:12