[Android] TextView-如何讓過長的文字以逗點表示

android textview ellipsize1

一、問題描述

TextView在指定長寬的情況下,如果文字長度大於View的寬度時,程式會預設將其換行,TextView的高度就會被撐大,可能會破壞整個Layout呈現的感覺,當然你也可以選擇限制TextView的最大行數,但超出行數的文字會直接被截斷,可能會有訊息不完整的感覺。面對這樣的狀況,一般的作法可能是限制資料本身的長度或是將超過的文字以逗點表示,本文將介紹如何讓超出TextView寬度的文字以逗點表示。


二、解決方法 - Ellipsize

要讓過長的文字以逗點顯示,有下列兩種方式

1. Layout XML描述檔中使用TextView的ellipsize屬性,此欄位可帶入的值為none、start、middle、end、marquee,分別代表逗號顯示的位置,可以針對實作需求選擇適合的參數。

2. 呼叫TextView的setEllipszie(TruncateAt.WHERE)方法,參數為TruncateAt類別的靜態屬性,與XML的屬性名稱一樣,如果要取消ellipsize效果,帶入null參數即可。
TextView ellipsizeTxt = new TextView();
ellipsizeTxt.setEllipsize(TruncateAt.START);

ellipsize start

ellipsize middle

ellipsize end

ellipsize常常與singleLine以及scrollHorizontally一起使用,使得文字可以維持在一行的狀態,而不會因為字數長度的關係被迫分成多行。

留言

這個網誌中的熱門文章

[Android] layout_weight的妙用-讓View的大小以百分比率顯示(proportionate size)

[Android] 內部儲存體(Internal Storage)的檔案系統讀寫(File I/O)

【海外婚紗】造型篇-我的超人新祕Sunny-Yang