我有一个TextView,其中填充了一个从数据库中获取的文本,因此它的长度是未定义的。
我使用maxline属性配置了TextView,并将其值设置为3,因为我不需要超过3行文本,而且还使用了ellipsize属性。
但它无法正常工作。虽然文本大于3行,但它只打印两行。
<TextView
android:id="@+id/etLugar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tvLugar"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/tvLugar"
android:text="A very large text than must be shown in the textview, but no more of three lines are going to be shown"
android:textColor="@color/foreground1"
android:maxLines="3"
android:ellipsize="end"
android:textSize="12dp"
/>
我不明白为什么maxlines属性不能正常工作。我做错了什么?
由于
答案 0 :(得分:3)
我想这是由于android:singleLine="false"
是默认值try并将其更改为TRUE
告诉它是否有效。
答案 1 :(得分:0)
同样的问题Android ellipsize multiline textview。这是已知的bug,已经很老了,还没有修复。
有人发布了解决方法Android Textview Multiline Ellipse/,这可能对您(或其他人)有帮助。
答案 2 :(得分:0)
由于你的内容较少,只有两行,所以你编写的代码(xml)完全可以在字符串中输入更多内容然后尝试。
图片
答案 3 :(得分:0)
我遇到了与2 TextView类似的问题,其中一个应该有maxLines =&#34; 2&#34;和其他maxLines =&#34; 4&#34;。
无论我添加的ellipsize设置如何,第一行总是在一行上。 第二个没关系,文字正在使用它需要的多行!
这似乎取决于两个因素:
为了解决这个问题,我添加了直接在文本视图上执行此操作的代码:
tv1.setMaxLines(2);
tv2.setMaxLines(4);
这就是诀窍。
答案 4 :(得分:-1)
不要使用ellipsize
属性,只需android:maxlines="3"
即可。