getLineCount() 永遠返回0 的問題
結論:
在TextView在畫面上尚未被建立出來的狀態下,getLineCount()會返回0。
Return the number of lines of text, or 0 if the internal Layout has not been built.(引用develop.android.com)
為了確保TextView在已建立完成的狀態中,使用View.post()是個可行的方法。
在post函數中,執行getLineCount()可以得到真正的行數值。
實際應用:
Android的TextView中設定文字時,如果高度heigth設定為wrap_content的話,當文字長度超出TextView的寬度(width)時,文字會自動執行換行以防止超出的文字無法顯示。
但下面的設計中,會有高度不一的情況出現。
這邊想要設計是當文字行數超過1行時,換到下一列表示。
因此,如果能偵測到TextView的文字行數的話(使用getLineCount())
,就可以判斷是否需要執行換行處理。
check function的內容大致如下:
成果:
Code(範例程式碼):
留言
張貼留言