以省略号编程创buildTextView

我正在编程创build一个TextView,我想在最后省略号。

伪代码:

tv.setEllipsize(TextUtils.TruncateAt.END); tv.setHorizontallyScrolling(false); tv.setSingleLine(); 

以上作品很棒。

  tv.setEllipsize(TextUtils.TruncateAt.END); tv.setHorizontallyScrolling(false); tv.setMaxLines(1); 

这不起作用。 这是一个错误? 我不明白为什么我不能在最后指定maxLine,特别是最大行数为1,但最后setSingleLine没有问题时,我不能得到文字。

Solutions Collecting From Web of "以省略号编程创buildTextView"

setSingleLine()setSingleLine(true)可防止TextView将其高度更改为更多行,并强制TextView忽略换行符(string中的符号\n )。

setMaxLines(int n)显示TextView中显示的string的前n行,用换行符分隔。

例如让string“我的第一行\ n和我的第二行\ n和第三个”

  • 由于超出了显示宽度, setSingleLine()让TextView显示“我的第一行和我..”
  • setMaxLines(1)导致“我的第一行”
  • setMaxLines(2)结果是“我的第一行”,在行的下面写着“和我的第二行”
  • setMaxLines(3)显然对这个示例string没有任何影响。

更新:这应该为“setDoubleLine截断”:

 // optional: string.replace("\n",""); or string.replace("\n"," "); tv.setSingleLine(false); tv.setEllipsize(TextUtils.TruncateAt.END); int n = 2; // the exact number of lines you want to display tv.setLines(n);