android 如何在不使用autoSizeTextType的情况下在ConstraintLayout中自动调整TextView的大小?

4dbbbstv  于 2022-11-20  发布在  Android
关注(0)|答案(3)|浏览(125)

我的ConstraintLayout中有一个TextView,但我希望TextView仅占用其父级的宽度和高度(0dp,0dp)。我发现在小型设备中,如果在ConstraintLayout中有一个ImageView或android:layout_width="0dp"android:layout_height="0dp"的View,它将遵守约束,不会比其父视图大。但在TextView中,它的工作方式与在小型设备中不同,但是文本超出了它的最大空间。为了让你了解,我贴了一张图片,让你看看TextView是如何超出它的约束的:
问题图像:the text should show Example text
我没有使用换行内容,因为我需要TextView正好占据那平方米的空间。我认为问题是TextView的大小不能根据屏幕大小自动调整。我该怎么做才能使大小等于所有文本都能完全看到的大小呢?
我也看到我可以使用android:autoSizeTextType="uniform",但我不能,因为它需要API级别〉=26

<TextView
    android:id="@+id/textView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:elevation="2dp"
    android:text="@string/example_of_text"
    android:textAppearance="@style/TextAppearance.AppCompat.Medium"
    android:textColor="@color/txt_light"
    android:textStyle="bold"
    app:layout_constraintBottom_toTopOf="@+id/view1"
    app:layout_constraintEnd_toStartOf="@id/view2"
    app:layout_constraintStart_toEndOf="@id/view3"
    app:layout_constraintTop_toBottomOf="@+id/view4" />

我尝试在TextView中使用android:layout_width="0dp"android:layout_height="0dp",正如我所说的使用ConstraintLayout,但文本与其约束重叠。

esyap4oy

esyap4oy1#

可以将单位文本大小设置为dp而不是sp

android:textSize="15dp"
mklgxw1f

mklgxw1f2#

如果minSdk〉= 14,则可以使用 AppCompatTextView 进行自动调整。根据documentation
支持库26.0在运行Android 8.0(API级别26)之前的Android版本的设备上提供对自动调整TextView功能的全面支持。该库提供对Android 4.0(API级别14)及更高版本的支持。android.support.v4.widget包包含TextViewCompat类,用于以向后兼容的方式访问功能。
您可以指定android:autoSizeTextType="uniform"app:autoSizeTextType="uniform"也可能有效。

jgovgodb

jgovgodb3#

android:layout_marginStart=“10dp”并尝试使用ssp和sdp库。给予android:layout_width=“0dp”作为匹配父项

相关问题