【发布时间】:2011-06-19 02:28:30
【问题描述】:
我有一个 TextView,我必须在其中加载一条消息。 TextView 最多有 2 行 (android:lines="2")。该消息可能包含“\n”字符。
我应该如何在该 TextView 中加载消息以便包装单词,如果这两行消息不适合,在最后一个可见单词的末尾我必须添加三个点 (...)?如何检测适合该 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"
/>
但在应用程序中,文本出现在两行上,即使有一行包含签名。消息类似于:“消息文本”+“\nSignature”,但消息可以是 1、2、3 行,具体取决于消息长度。
【问题讨论】:
-
为什么需要知道文本的长度?除非您为 TextView 定义了固定宽度,否则它可能会因不同的屏幕尺寸而异。
-
我的问题是我不知道如何在最后一个可见单词的末尾添加 3 个点。 android:ellipsize="end" 和 android:ellipsize="marquee" 没有帮助....所以我认为我不会将所有文本添加到 textview,而只添加适合 textview 的文本
-
您可以发布您现在使用的 TextView 的代码吗?也许还有其他属性会阻止椭圆形的工作。
标签: android android-layout textview word-wrap