如果 aString
比TextView
' 的宽度长,它会自动换行到下一行。我可以通过使用android:singleLine
(不推荐)或设置来避免这种情况android:inputType="text"
。我现在需要的是String
用“ ... ”替换我的最后 3 个字符的东西。由于我没有使用等宽字体,这将始终根据我的String
. 所以我想知道在 a 中获取字符串的最后 3 个字符TextView
并替换它们的最佳方法是什么。也许Android框架中已经实现了一些东西,因为这一定是一个普遍的问题。
问问题
97924 次
3 回答
320
您应该能够使用文本视图的“ellipsize”属性:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_mytext"
android:ellipsize="end"
android:maxLines="1"
/>
您可能还需要对布局应用重力值;我有时会看到没有它们的“自动拉伸”视图。
于 2009-11-03T13:28:27.077 回答
35
为这个问题找到了一个有趣的解决方法。
maxLines=1
ellipsize=end
scrollHorizontally=true
诀窍是关于水平滚动的最后一条语句....检查一下。它至少适用于 v2.2。
于 2011-05-19T06:01:15.667 回答
5
以编程方式,您可以使用:
TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);
于 2014-12-04T13:58:01.660 回答