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

2022-01-09 00:00:00 android java textview

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

If a String is longer than the TextView's width it automatically wraps onto the next line. I can avoid this by using android:singleLine (deprecated) or by setting android:inputType="text". What I need now is something that replaces the last 3 characters of my String with "...". Since I'm not using a monospace font this will always be different depending on the letters used in my String. So I'm wondering what's the best way to get the last 3 characters of a String in a TextView and replace them. Maybe there's already something implemented in the Android framework, since this must be a common problem.

推荐答案

你应该能够使用文本视图的ellipsize"属性:

You should be able to use the "ellipsize" property of a text view:

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

您可能还需要对布局应用重力值;我有时会看到没有它们的自动拉伸"视图.

You may also need to apply gravity values to the layout too; I have sometimes seen "auto-stretching" views without them.

相关文章