根据Android文档中的article,我正在尝试在我的应用上使用TextViewCompat支持较早的android版本。
但是我在Android Studio上面临这种警告:
此处不允许使用TextViewCompat元素 此检查突出显示了Android资源文件和AndroidManifest.xml中不允许的XML标签
我在做什么错了?
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.841"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.87" />
<TextViewCompat
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:textSize="120sp"
android:text="10 min"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:1)
根据documentation,您不需要这样做就可以利用AppCompatTextView
:
当您在布局中使用TextView并且appcompat提供顶级活动/对话框时,将自动使用此功能。编写自定义视图时,您只需要手动使用此类。
基本上,在构建应用程序时,appcompat会以XML替换Compat版本的各种UI小部件的实例。只要您不扩展窗口小部件,就不必担心这种行为(并且您会收到棉绒警告,告诉您如果您想扩展窗口小部件该怎么办)。
如果您尝试从Java / Kotlin中以编程方式操纵自动调整大小的API,则仅需要TextViewCompat
。这是通过将视图查找为TextView
,然后在TextViewCompat
上使用静态方法来完成的:
TextView textView = findViewById(R.id.textView);
TextViewCompat.setAutoSizeTextTypeWithDefaults(textview, myTextSizeType);
答案 1 :(得分:0)
使用android.support.v7.widget.TextViewCompat
或android.support.v7.widget.AppCompatTextView