我可以限制TextView的字符数吗?

iTu*_*rki 68 android textview

我现在拥有的是TextView元素的ListView.每个TextView元素都显示一个文本(文本长度从12个字到100+不等).我想要的是让这些TextViews显示文本的一部分(比方说20个字或大约170个字符).

如何将TextView限制为固定数量的字符?

Boo*_*ger 148

这是一个例子.我使用maxLength属性限制size,使用maxLines属性将其限制为单行,然后使用ellipsize = end自动添加"..."到任何已截断的行的末尾.

<TextView 
    android:id="@+id/secondLineTextView" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:maxLength="10" 
    android:ellipsize="end"/>
Run Code Online (Sandbox Code Playgroud)

  • 什么是'ellipsize = marquee`? (4认同)
  • @Booger android:ellipsize ="marquee"最后不附加省略号(...),而是覆盖截断文本的末尾作为限制的标志.android:ellipsize ="end"会在末尾添加省略号(...),而android:ellipsize ="start"会在开头添加省略号 (3认同)
  • “然后使用ellipsize = marquee将“ ...”自动添加到任何行的末尾” (2认同)

Gan*_*kar 9

在TextView中使用以下代码

 android:maxLength="65"
Run Code Online (Sandbox Code Playgroud)

请享用...


Dar*_*ski 6

如果您对xml解决方案不感兴趣,可以这样做:

String s="Hello world";
Textview someTextView;
someTextView.setText(getSafeSubstring(s, 5));
//the text of someTextView will be Hello
Run Code Online (Sandbox Code Playgroud)

...

public String getSafeSubstring(String s, int maxLength){
  if(!TextUtils.isEmpty(s)){
    if(s.length() >= maxLength){
      return s.substring(0, maxLength);
    }
  }
  return s;
}
Run Code Online (Sandbox Code Playgroud)


pra*_*kar 6

我使用该maxEms属性做到了这一点。

 <TextView
    android:ellipsize="end"
    android:maxEms="10"/>
Run Code Online (Sandbox Code Playgroud)