【问题标题】:TextView maxLength ellisize not working [duplicate]TextView maxLength ellisize 不起作用[重复]
【发布时间】:2018-06-26 07:14:03
【问题描述】:

我有一个 TextView,最多应该有 15 个字符,最后应该有三个点。使用我的 XML,它会减少 15 个字符,但不会在末尾添加三个点 ...

重要提示:我知道当我用行数限制文本时它有效 - android:maxLines="2"。但我需要用最大字符数限制它, 如问题所述。

<TextView
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:maxLength="15"
    android:ellipsize="end"
    tools:text="123456789qwertyuiopasdfghjklzxcvbnm"
    android:textSize="50sp"
/>

结果:

【问题讨论】:

  • @Amardeep ,我在发布问题之前见过这个,但它不是重复的,在这种情况下,它们限制为 android:maxLines="2",正如我所说,我想限制为 @987654326 @.

标签: android text textview ellipsize


【解决方案1】:

我不确定如何或是否可以在 XML 中做你想做的事情。

至少我不知道怎么做 - 但我有一个替代解决方案给你。

public void ellipsizeText(TextView tv){
    int maxLength = 13;
    if(tv.getText().length() > maxLength){
        String currentText = tv.getText().toString();
        String ellipsizedText =  currentText.substring(0, maxLength - 3) + "...";
        tv.setText(ellipsizedText);
    }
}

所以我只是将它作为一种将文本视图作为参数的方法。这真的很简单,您将 maxLength 更改为所需的字符串最大长度。在这种情况下,它设置为 13,因为它将最后 3 个字符替换为“...”,这会产生一个仍然 13 个字符长的字符串,但前 10 个是实际文本,最后 3 个是“ ...”。

在您的主项目中,您可以将 maxLength 更改为 150(或 153,如果您希望字符串中有 150 个可见字符)

希望您可以使用它,如果您有任何问题,请告诉我。

【讨论】:

  • 感谢您的回复!是的,我在 xml 中需要它,我已经编写了子字符串代码,因此我感到羞耻。但我认为Android必须有XML解决方案,因为在代码中这样做是不正确的。
  • 接下来看看是否有人提出了解决方案。这就是我现在所拥有的;)
  • 是的,我已经搜索了所有内容,但没有找到所需的解决方案。无论如何,为您在代码方面所做的努力向我投赞成票 :) 如果没有 XML 解决方案,也许它会对其他人有所帮助
【解决方案2】:

试试这个解决方案:

 <TextView
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:ellipsize="end"
    android:singleLine="true"
    android:maxLines="1"
    android:text="123456789qwertyuiopasdfghjklzxcvbnm"
    android:textSize="50sp"
    />

希望这对您有所帮助...如果您需要任何帮助,您可以询问

【讨论】:

  • 是的,我知道当我用行数限制文本时它可以工作,但如上所述我用字符数限制android:maxLength=15
  • 非常重要:ellipsize="end" 仅在 maxLength 设置为大于一行字符数的值时才有效。如果您对齐 TextView 的结尾并从任何其他视图开始,则可以使用“wrap_content”。
  • 实际上在实际项目中我的 maxLength= 150(比一行上的字符数多得多)仍然没有成功。
猜你喜欢
  • 1970-01-01
  • 2012-10-01
  • 2015-08-26
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
相关资源
最近更新 更多