singleLine 和 maxLines

設置文字單行顯示一般是如下兩種寫法

android:maxLines="1"
android:maxLines="1" 

但是用 singleLine 的時候會提示下圖

image.png

建議我們用 maxLines = 1 替換 singleLine,這導致很多人會以為這兩者是等價的。
然后我最近遇到的一個問題,然后發(fā)現(xiàn)這兩個其實還是有區(qū)別的!

問題是這樣,一個textview設置了單行顯示文字,但是發(fā)現(xiàn)文字會比截取一半,如下圖

QQ圖片20171020115612.jpg

圖中的文字被截斷了一半,這樣的顯示效果肯定是不能接受了,中間嘗試了各種別的辦法都沒有解決這個問題,最后的最后,才發(fā)現(xiàn)是singleLine的鍋。

singleLine是將TextView內的所有問題排在了同一行,強制不換行,超過TextView寬度的部分我們只是看不到,但是其實還是在后面的。
maxLines是限制TextView的最大行數(shù),而我們可以設置值為1來達到單行顯示的效果

舉個列子,現(xiàn)在的文字正常展示需要3行,而singleLine是將這3行的文字都展示在第一行里,而 maxLines是有換行策略的,但是只展示給我們第一行。這也就是上面說的我遇到的問題的原因,maxLines會自動換行,所以不會出現(xiàn)文字被截斷,而singleLine是一個橫向的平鋪,遇到TextView的邊界的時候會被截斷。

而后事實就是我將代碼里的 singleLine 換成 maxLines = 1 該問題就得以解決了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容