我的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,但文本与其约束重叠。
3条答案
按热度按时间esyap4oy1#
可以将单位文本大小设置为dp而不是sp
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"
也可能有效。jgovgodb3#
android:layout_marginStart=“10dp”并尝试使用ssp和sdp库。给予android:layout_width=“0dp”作为匹配父项