1

在我的activity.xml中,我有两个AppCompatTextView看起来像这样:

<androidx.appcompat.widget.AppCompatTextView
    android:id="@+id/user_full_name_text_view"
    android:layout_width="0dp"
    android:layout_height="50dp"
    android:layout_marginStart="16dp"
    android:layout_marginEnd="8dp"
    android:fontFamily="@font/roboto_bold"
    android:maxLines="1"
    android:text="@string/full_name"
    android:textColor="@android:color/white"
    app:autoSizeTextType="uniform"
    app:layout_constraintBottom_toTopOf="@+id/guideline"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toEndOf="@+id/profile_image"
    app:layout_constraintTop_toTopOf="parent" />

<androidx.appcompat.widget.AppCompatTextView
    android:id="@+id/user_name_text_view"
    android:layout_width="0dp"
    android:layout_height="20dp"
    android:layout_marginEnd="8dp"
    android:fontFamily="@font/roboto"
    android:maxLines="1"
    android:text="@string/username"
    android:textColor="@android:color/white"
    app:autoSizeTextType="uniform"
    app:layout_constraintBottom_toTopOf="@+id/guideline"
    app:layout_constraintEnd_toEndOf="@+id/user_view"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="@+id/user_full_name_text_view"
    app:layout_constraintTop_toBottomOf="@+id/user_full_name_text_view"
    app:layout_constraintVertical_bias="0.0" />

在我的设计选项卡中,这部分活动如下所示:

Android 设计选项卡

现在看起来正确,因为文本已正确自动调整大小以填充第一个AppCompatTextView. 但是,当我在移动设备上运行我的应用程序时,它看起来像这样:

安卓手机设计

为什么文本不自动调整大小?我该如何解决这个问题,以便文本填充整个宽度和高度AppCompatTextView

4

2 回答 2

2

自动调整大小不能很好地使用wrap_content,可能是因为它需要知道它的大小才能说出它的内容有多大。您是否在层次结构中的任何地方都发生了这种情况,例如在您所在的布局AppCompatTextViews中?

现在你的宽度取决于有多宽parent,但如果那是wrap_content(或它的父级是,等等),那么最终那个文本视图会被问到它想要多宽,它会感到困惑

于 2020-08-15T01:43:28.177 回答
0

我想问题是添加app:autoSizeTextType="uniform"是不够的。当您使用uniform类型时,您还应该指定步长粒度。尝试使用以下这些属性:

<androidx.appcompat.widget.AppCompatTextView
    ...
    app:autoSizeTextType="uniform"
    app:autoSizeMinTextSize="12sp"
    app:autoSizeMaxTextSize="24sp"
    app:autoSizeStepGranularity="1sp"
    ... />
于 2020-08-15T06:41:22.863 回答