-1

在 Android 12 上,使用长文件名可重现问题。正如它在所附图像中看到的那样,文件的扩展名是纵向切割的。

问题是:当一行显示一个文件名,且需要android:ellipsize="middle"时,setsetting "android:textAppearance="?attr/textAppearanceSubtitle1" 时文件名后缀显示不完整

和布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".FirstFragment">

    <TextView
        android:id="@+id/first_line_text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="10dp"
        android:ellipsize="middle"
        android:maxLines="1"
        app:layout_constraintWidth="true"
        android:text="RF_20210819NZ Herald - Breaking news, latest news, business, sport and entertainment - NZ Herald.url"
        android:textAppearance="?attr/textAppearanceSubtitle1"
        app:layout_constrainedWidth="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:text="RF_20210819NZ Herald - Breaking news, latest news, business, sport and entertainment - NZ Herald.url" />
    <Button
        android:id="@+id/button_first"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/next"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/first_line_text" />
</androidx.constraintlayout.widget.ConstraintLayout>

截屏

4

1 回答 1

0

删除android:maxLines="1". 它使文本保持在一行。也就是说,如果您试图将文本移动到第二行。和 remove android:ellipsize="middle",使声明的android:maxline="1",这实际上使文本停留在一行以在中间被截断。

而且我也认为您不需要app:layout_constrainedWidth="true",因为您将 TextView 的宽度设置为match_contraint已经设置为 0

tools:text="..."用于测试您的 UI,查看它如何处理不同长度的文本等。你不需要把两者放在android:text="..."一起tools:text="..."

于 2021-10-21T22:41:11.980 回答