Android:TextView自动截断并替换字符串的最后3个字符

问题描述:

如果StringTextView的宽度长,它会自动换行到下一行。我可以通过使用android:singleLine(不建议使用)或设置android:inputType="text"来避免这种情况。我现在需要的是用“...”取代我的String的最后3个字符。由于我没有使用等宽字体,这取决于我的String中使用的字母。所以我想知道什么是获得TextView中字符串的最后3个字符并替换它们的最佳方法。也许在Android框架中已经实现了一些东西,因为这一定是一个常见问题。Android:TextView自动截断并替换字符串的最后3个字符

您应该能够使用文本视图的“ellipsize”属性:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/text_mytext" 
    android:ellipsize="end" 
    android:maxLines="1" 
/> 

您可能还需要重力值适用于布局太;我有时看到没有它们的“自动拉伸”视图。

+0

+1 - 用户想要做什么,而不必滚动它自己 – I82Much 2009-11-03 14:08:00

+0

完美。谢谢。我曾尝试过,但没有工作,因为我使用android:inputType =“text”而不是android:singleLine =“true”(这应该被弃用)。但现在我要坚持使用android:singleLine =“true”。 Muchas gracias。 – znq 2009-11-03 14:08:34

+30

它仍然不添加“...”。对我来说,这个问题还没有完全解答!这个答案会使“短verylongword”只是“短”而不是“短verylon ...”。最重要的是,你们建议使用不推荐的属性。 – OneWorld 2010-09-22 12:06:30

发现这个问题有趣的工作。

​​

诀窍是关于水平滚动的最后陈述....检查出来。它至少在v2.2上工作。

+7

似乎停止在Android 4.0上工作 – caw 2012-04-10 16:36:04

+0

有趣......很高兴知道。感谢马可的提醒。 – BonanzaDriver 2012-04-10 22:17:56

与编程

您可以使用

​​