2012-07-20 24 views
4

我有一个TextView填充了从数据库中获取的文本,所以其长度未定义。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

用于字符串长度和子字符串来限制:) – iNan 2012-07-20 11:26:20

+0

“android:text'属性中是否存在'\ n'?只有这是它认为的新线。 – RTB 2012-07-20 11:26:45

回答

-1

不要使用ellipsize属性,只是android:maxlines="3"应该工作。

+0

我试过了,但不起作用,显示两行 – Eduardo 2012-07-20 12:05:22

+1

好吧,它可以工作,显示三行,但现在椭圆不显示 – Eduardo 2012-07-20 12:13:22

+0

您是使用默认字体还是自定义。我遇到了这个问题,椭圆没有在字体中定义,所以它最终绘制了一个空格。 – JPM 2014-08-12 20:50:04

0

还有同样的问题Android ellipsize multiline textview。这是已知的错误,相当古老,尚未修复。

有人发布了解决方法Android Textview Multiline Ellipse/也许它会帮助你(或其他人)。

+0

您好,我已经尝试了我在您告诉我的问题中阅读过的解决方案,但它不起作用。再次,两条线,但现在它不是椭圆形... – Eduardo 2012-07-20 11:48:04

3

我想这是由于android:singleLine="false"这是默认值尝试并将其更改为TRUE 告诉它是否工作。

+0

singleLine已被弃用 – JPM 2016-10-17 21:25:27

0

由于您的内容较少,只有两行,所以您编写的代码(xml)完美地工作,在字符串中输入更多内容,然后尝试。

图像0​​

0

我在与2的TextView一个类似的问题,一方面是应该有MAXLINES = “2”,而另一MAXLINES = “4”。

不管我添加的椭圆大小设置如何,第一个总是在一行上。 第二个并不重要,文本使用尽可能多的行!

这似乎取决于两个因素:

  1. 布局
  2. 如果设置可能会破坏/覆盖此设置或单线选项

为了解决这个问题的textAppearance的其他元素我添加了代码直接在文本视图上执行该操作:

tv1.setMaxLines(2); 
tv2.setMaxLines(4); 

And th在做伎俩。