現象描述:
android:singleLine="true"時,text超出部分顯示[.],沒有顯示省略号[...]。
如果想要一行顯示文本,超出部分用省略号代替。一般會使用android:singleLine="true"。這種解決辦法大部分情況是對的,但是某些情況下會出問題。比如,以下情況:
Button設定android:singleLine="true",text是英文的情況下,text超出部分顯示[.],不顯示省略号[...]。
上述情況會在android 4.0以上的系統中出現,android4.0以下沒有這種問題。
如圖所示。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TVXVmdGJTWxw2RiZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DN2EDOzMTN2EjMxIDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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>