AppCompatTextView autoSizeTextType不起作用

问题描述

在我的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 Design Tab

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

Android Mobile Design

为什么文本不能自动调整大小?如何解决此问题,使文本填充AppCompatTextView的整个宽度和高度?

解决方法

自动调整doesn't play well with wrap_content的大小,可能是因为它需要先知道其大小,然后才能说出其内容的大小。您是否在层次结构中的任何地方进行任何操作,例如AppCompatTextViews所在的布局?

现在,您的宽度取决于parent的宽度,但是如果是wrap_content(或父级等),则最终将获得文本视图问它要宽到多少,就会感到困惑

,

我想问题是,添加app:autoSizeTextType="uniform"是不够的。 使用uniform类型时,还应指定步骤粒度。 尝试在下面使用此类属性:

<androidx.appcompat.widget.AppCompatTextView
    ...
    app:autoSizeTextType="uniform"
    app:autoSizeMinTextSize="12sp"
    app:autoSizeMaxTextSize="24sp"
    app:autoSizeStepGranularity="1sp"
    ... />

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...