Textview限制140个字符不起作用

时间:2016-01-25 03:05:49

标签: android android-layout android-widget textview

我知道这个问题已经多次询问,但我无法用可用的解决方案来解决我的问题。

我应用了其他堆栈溢出线程上可用的所有解决方案。

要求:

如果字符串长度超过140而不是仅显示140个字符,最后添加" .."最后。 如果字符串少于140个字符,则无需附加" .."最后。

我尝试了什么:

        <TextView
            android:id="@+id/tvIssueBody"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLength="140"
            android:paddingBottom="5dp"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textSize="@dimen/detail_text_size"/>

我已经尝试了上面的代码,但它没有工作,我尝试了所有其他属性混合物,但它不起作用。

我应该使用str.subString(0,141)选项吗?使用textview属性无法限制140个字符?

感谢所有先进的人。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用内置的TextView无法完全按照您的要求工作。首先,TextView不允许任何人添加超过maxLength的字符。因此,如果他们尝试添加200个字符,则最后60个字符将被删除。这意味着如果您想保留该数据,即使141也无效。而Elipsize并没有在你想要的地方进行椭圆化 - 它可以在需要的地方进行椭圆化处理,以便在屏幕上显示文本。在给定长度后,你不能强迫它这样做。

你真正需要的是一个自定义视图或TextView的子类,所以你可以覆盖onDraw来绘制一个不同于设置文本的字符串(它的手工椭圆版本)。