Android - ellipsize="end" 不显示三个点

Jer*_*hen 5 xml android textview android-studio

我正在研究TextView包含在 a 中的 a ConstraintLayout

如果长度超过 maxLength,我希望 ellipsize 在文本末尾(在 TextView 中)添加三个点。

在对我的问题进行彻底研究后, maxLines="1" 和 ellipsize="end" 似乎是最好的答案。不幸的是,它对我的​​情况不起作用。三个点根本没有显示。

这是快照:

在此处输入图片说明

原始字符串是“测试长描述”(n 被删除)。它应该显示“测试长描述......”。

这是我的 xml :

<TextView
    android:id="@+id/txtDescription"
    android:maxLength="24"
    android:maxLines="1"
    android:ellipsize="end"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="120dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="8dp"
    android:text="DescriptionView"
    android:textSize="18sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.72" />
Run Code Online (Sandbox Code Playgroud)

我觉得 XML 中有一些覆盖 ellipsize 的东西,还是我错过了 XML 文件中的一些重要内容?

for*_*pas 5

问题是:

android:maxLength="24"
Run Code Online (Sandbox Code Playgroud)

删除它,因为您希望将TextView其省略。
当 TextView 不够宽以显示整个文本时,它会被椭圆化。
我想你不明白这个属性android:ellipsize="end"是什么。
如果它足够宽,那么您将不会在最后看到任何点,因为它们不是必需的。
如果你设置,android:layout_width="40dp"那么你会看到点。
随着android:layout_width="wrap_content"TextView是足够宽,它不ellipsized。