我有一个 TextView,我必须在其中加载一条消息。 TextView 最多有 2 行( android:lines="2"
)。该消息可能包含一个“\n”字符。
我应该如何在该 TextView 中加载消息以便将单词换行,如果在这 2 行中消息不适合,在最后一个可见单词的末尾我必须添加三个点(…)?如何检测适合该 TextView 的文本长度?
我的 TextView 代码是
<TextView
a:id="@+id/tv_message"
a:gravity="top"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_alignParentTop="true"
a:layout_toRightOf="@id/iv_icon"
a:layout_marginLeft="2dp"
a:layout_marginTop="4dp"
a:paddingRight="7dp"
a:paddingBottom="5dp"
a:textSize="12sp"
a:typeface="sans"
a:ellipsize="marquee"
a:lines="2"
a:maxLines="2"
a:textColor="@android:color/black"
/>
但在应用程序中,文本出现在两行中,即使有一行包含签名。消息类似于:“消息文本”+“\n签名”,但消息可以位于 1、2、3 行,具体取决于消息长度。
原文由 Buda Gavril 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 XML 中,将属性
android:ellipsize="marquee"
用于 TextView。您的 TextView 可以定义为:
编辑:我试过以下代码,改编自你的代码:
这是输出: