在 TextView 中显示 3 个点或截断的任何其他方法

Posted

技术标签:

【中文标题】在 TextView 中显示 3 个点或截断的任何其他方法【英文标题】:Any other methods to show 3 dots or truncate in TextView 【发布时间】:2017-06-05 06:30:12 【问题描述】:

我的 TextView 标签看起来像这样

        <TextView
        android:layout_
        android:layout_
        android:drawableEnd="@drawable/search_pickup_address"
        android:drawablePadding="@dimen/space"
        android:scrollHorizontally="false"
        android:ellipsize="end"
        android:inputType="text"
        android:maxLines="1"
        android:minLines="1" />

我已经设置了所有这些属性

        android:scrollHorizontally="false"
        android:ellipsize="end"
        android:maxLines="1"
        android:minLines="1"

由于不推荐使用单行 true 方法

        android:singleLine="true"

当我使用此方法时,点显示正常。

 String label;
 if (string.length() >= 35) 
    label= data.substring(0, 35)+ "...";
  else 
    label= data;

 
   textView.setText(label);

但是有没有像

这样的直接方法
 android:singleLine="true"

【问题讨论】:

你有没有想过淡化 TextView 的末端而不是 ellipsize 的可能性? 您只是在问如何修复椭圆大小吗?还是你真的想要另一种方法来做到这一点? 我只是要求其他方法.. 就像这只能在 XML 中实现。 如果你的意思是,可以严格在布局 XML 中完成,那么可以。从 &lt;TextView&gt; 元素中删除 inputType 属性。 【参考方案1】:

你可以使用

 android:ellipsize="end"
 android:maxLines="1"
 android:minLines="1"
 android:singleLine="true"

【讨论】:

感谢您的回复,但我正在寻找我未提及的其他方法。 能否请您为您的答案添加更多上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。【参考方案2】:

您可以使用用户属性:

android:ellipsize="end"


android:singleLine="true"

希望对你有帮助!

【讨论】:

感谢您的回复,但我正在寻找我未提及的其他方法 可以分享一下吗? :)

以上是关于在 TextView 中显示 3 个点或截断的任何其他方法的主要内容,如果未能解决你的问题,请参考以下文章

在 IE 和 chrome 中截断(带有 3 个点“...”)内容不起作用

对话框中的文本被截断

给定一组点或向量,找到彼此最接近的 N 个点的集合

应用ellipsize时,获取textview中可见字符的数量

matlab中legend的任意标注

如何基于onItemSelectedListener在textview中显示纺织品?