我真的无法弄清楚为什么,但我只能在maxLines=2
以及更多工作中使用ellipsize。我正在显示几个描述的单词,然后是一个没有空格的长字符串。
这就是TextView的样子:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="#757575"
android:text="@string/gcm_not_registered"
android:maxLines="1"
android:ellipsize="end"
android:id="@+id/login_gcmRegistrationTextView"/>
然后以编程方式为其设置文本,但根据maxLines限制,我得到两个不同的结果:
唯一改变的是maxLines
,为什么第一张照片中的线条也没有填充?
答案 0 :(得分:6)
有两种方法可以解决它:
android:ellipsize="end"
属性更改为android:ellipsize="marquee"
。android:maxLines="1" android:ellipsize="end"
属性并添加android:singleLine="true"
属性。答案 1 :(得分:5)
此代码适用于我:
在xml中添加:
ellipsize
:marquee
lines
:1
在java中:
<yourTextView>.setHorizontallyScrolling(true);
<yourTextView>.setSelected(true);
如果有另一个请求“焦点”的项目,则会失去选框效果。 textView
需要选择状态来阻止这种情况。
答案 2 :(得分:0)
实际上,问题出在跨度文本上,如果您设置跨度文本将无法正常工作。除此之外,以下代码对我有用
<TextView
android:id="@+id/tv_second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40dp"
android:layout_margin="5dp"
android:padding="5dp"
android:fontFamily="sans-serif-condensed"
android:textColor="#b3277b"
android:background="#f7ecff"
android:layout_below="@id/tv"
android:text="This is first line\nThis is second line\nThis is third line"
android:ellipsize="end"
android:maxLines="2"
/>