我有一个TextView,如果超过它的可用宽度,我希望它能够自动省略。但是,除非输入字符串没有空格,否则这种方法无效... 有人可以提供一个有效的示例吗?我尝试了以下不同组合:
singleLine="true" maxLines="1" scrollHorizontally="false"
以上任何一种都没有效果。再次强调,如果我提供的字符串中没有空格,那么省略号会正确地出现。我错过了什么吗?我在1.5、1.6、2.0上都尝试过,问题都一样。
谢谢
我有一个TextView,如果超过它的可用宽度,我希望它能够自动省略。但是,除非输入字符串没有空格,否则这种方法无效... 有人可以提供一个有效的示例吗?我尝试了以下不同组合:
singleLine="true" maxLines="1" scrollHorizontally="false"
以上任何一种都没有效果。再次强调,如果我提供的字符串中没有空格,那么省略号会正确地出现。我错过了什么吗?我在1.5、1.6、2.0上都尝试过,问题都一样。
谢谢
Ellipsize(省略号)是有问题的(请前往投票报告bug,尤其是因为他们声称无法复制),因此你必须使用一种小技巧。使用:
android:inputType="text"
android:maxLines="1"
在任何您想要省略的内容上使用 ellipsize
。同时不要使用 singleLine
,因为它自从1.5版本以后就已经过时了。
android:ellipsize="end"
与android:maxLines="1"
的组合非常有效! - Someone Somewhereandroid:singleLine="true"
。 - Roel这是我在SDK ver4上能成功使用的唯一组合:
android:ellipsize="end"
android:singleLine="true"
(是的,我知道它说它已经被弃用了,但我没有选择)
请尝试以下操作:
textView.setSingleLine();
TruncateAt truncate = TruncateAt.END;
textView.setEllipsize(truncate);
简单的解决方案。
int limit = 9;
if (str.length() > limit) {
textView.setText(str.substring(0, limit)+"...");
} else {
textView.setText(str);
}