設置文字單行顯示一般是如下兩種寫法
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
該問題就得以解決了。