天天看點

android:singleLine="true",[...]沒有全部顯示,隻顯示一個點[.]

現象描述:

android:singleLine="true"時,text超出部分顯示[.],沒有顯示省略号[...]。

如果想要一行顯示文本,超出部分用省略号代替。一般會使用android:singleLine="true"。這種解決辦法大部分情況是對的,但是某些情況下會出問題。比如,以下情況:

Button設定android:singleLine="true",text是英文的情況下,text超出部分顯示[.],不顯示省略号[...]。

上述情況會在android 4.0以上的系統中出現,android4.0以下沒有這種問題。

如圖所示。

android:singleLine="true",[...]沒有全部顯示,隻顯示一個點[.]

text不是英文的話,正常顯示(顯示省略号)

這個屬于系統bug,在xml中不能解決這個問題。隻能在代碼中重設text。

<span style="font-size:14px;">String text = "aaaaaaaaaa";
if (text.length() > 6) {
    text = text.substring(0, 6) + "...";
}
btn.setText(text);</span>