“简短且非常长词”
到
“短而且”
。但是我希望有所了解。喜欢
“短而且非常......”
现在我在Java代码中截断String。但是,那基于字符数而不是链接的实际长度。所以,结果不是很好。
String title;
if(model.getOrganization().length() > 19) {
title = model.getText().substring(0, 15).trim() + "…";
} else {
title = model.getText();
}
((TextView) findViewById(R.id.TextViewTitle)).setText(title);
更新
刚刚注意到,这个属性实际上在少数情况下添加了“...”。但并非所有这些:
12345678901234567890成为 “12345678901234 ...”
然而,
“1234567890 1234567890” 变成“1234567890”而不是 “1234567890 123 ...”
更新2
现在真的很时髦!我只是设置了singleLine = true并删除了maxLine(有和没有设置ellipsize属性时出现错误)...
这是摩托罗拉Milestone与Android 2.1更新1的截图。在HTC Desire上使用相同的Android版本也是如此
更新3
现在我使用android:ellipsize =“marquee”。这似乎是唯一正常工作的环境。只有集中注意力时它才会移动。我也在许多其他应用程序中看到它。我猜它是常见的做法。
答案 0 :(得分:65)
如果是单行试试这个:
android:ellipsize="end"
android:maxLines="1"
android:scrollHorizontally="true"
android:singleLine="true"
它对我有用。
答案 1 :(得分:24)
我遇到了类似的问题,并将此属性设置为TextView帮助:
android:singleLine="true"
另外,我使用的是RelativeLayout,所以我通过将左边距设置为TextView右侧的按钮来限制TextView可以占用的空间,这样文本就无法进一步扩展并被迫截断其内容。 / p>
也许这不是你问题的解决方案,但它在类似的情况下帮助了我。
答案 2 :(得分:1)
也许您可以查看操作系统使用的private Ellipsizer class如何工作并为您的应用修改它?
编辑:这是一个有用的链接 - http://androidxref.com/5.1.0_r1/xref/frameworks/base/core/java/android/text/Layout.java#1830
答案 3 :(得分:1)
查看我的更新3.解决方法是使用“marquee”。我此时已经看过很多应用程序。 现在,随着Android的新版本,此功能很可能已修复,并将按预期工作。 (我猜)