我创建了一个有两个文本视图的布局,以显示启用文本选择的一些内容。当尝试省略文本时,它不起作用。如果我禁用文本选择,省略将按预期工作。如何在启用文本选择的情况下省略文本?
另外,当添加paddingRight属性到第一个文本视图(textview1)时,第二个文本视图(textview2)在第一行被截断,即使我将省略号配置为“end”。如何解决第一行截断问题?
XML布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textview1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:includeFontPadding="false"
android:paddingRight="15dp"
android:singleLine="true"
android:text="Single Line 123456789 123456789"
android:textColor="#f00"
android:textIsSelectable="true"
android:textSize="16dp" />
<TextView
android:id="@+id/textview2"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:ellipsize="end"
android:includeFontPadding="false"
android:maxLines="2"
android:text="MultiLine123456789123456789123456789123456789 123456789123456789123456789"
android:textColor="#000"
android:textIsSelectable="true"
android:textSize="16dp" />
</LinearLayout>
谢谢你能提供的任何帮助。
1条答案
按热度按时间fcipmucu1#
一个老问题,但希望这能帮助那些来这里寻找答案的人(就像我一样)。
看起来
android:textIsSelectable
和android:ellipsize
完全不兼容;可选择的文本不会省略号,句号。因此,这里有一个解决方法:1.在布局XML中,继续放置
android:ellipsize="end"
,但 * 不要 * 包括android:textIsSelectable="true"
。1.视图膨胀后,在
TextView
上运行以下Kotlin代码:这里的关键字是
layout.text
:这是myTextView
内容的省略版本,所以我们在这里手动省略了text
,然后我们可以安全地使它可选。