我知道这个问题已经多次询问,但我无法用可用的解决方案来解决我的问题。
我应用了其他堆栈溢出线程上可用的所有解决方案。
要求:
如果字符串长度超过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个字符?
感谢所有先进的人。任何帮助将不胜感激。
答案 0 :(得分:2)
使用内置的TextView无法完全按照您的要求工作。首先,TextView不允许任何人添加超过maxLength的字符。因此,如果他们尝试添加200个字符,则最后60个字符将被删除。这意味着如果您想保留该数据,即使141也无效。而Elipsize并没有在你想要的地方进行椭圆化 - 它可以在需要的地方进行椭圆化处理,以便在屏幕上显示文本。在给定长度后,你不能强迫它这样做。
你真正需要的是一个自定义视图或TextView的子类,所以你可以覆盖onDraw来绘制一个不同于设置文本的字符串(它的手工椭圆版本)。