【发布时间】:2020-09-20 20:18:21
【问题描述】:
我在使用如下所示的样式时遇到了这个问题:
<style name="TextInputLayoutThemeWarning" parent="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="boxStrokeErrorColor">@color/warning_color</item>
<item name="errorTextColor">@color/warning_color</item>
<item name="errorIconTint">@color/warning_color</item>
<item name="errorIconDrawable">@drawable/ic_baseline_warning_24</item>
<item name="textAppearanceCaption">@style/TextAppearanceTextInputLayout</item>
</style>
当它们在活动中时,它适用于任何 TextInputLayout,但是,当我在片段中的 TextInputLayout 上使用相同的样式时,不会应用可绘制和着色。我尝试以编程方式和 XML 代码手动设置 Drawable 和 Tint,似乎这两个属性被忽略并设置为默认值,而不是我选择的那些。
活动的主题是:
<style name="Theme.Default" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textViewStyle">@style/CondensedFont</item>
</style>
下面是片段布局中的一个 sn-p(为清楚起见而减少了):
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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/clCCS1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">
<ScrollView
android:id="@+id/svCreateCharacter"
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
android:scrollbarSize="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clInnerContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilCharacterName"
style="@style/TextInputLayoutThemeWarning"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="8dp"
app:boxBackgroundColor="@color/content_background"
app:errorEnabled="true"
app:errorTextAppearance="@style/TextAppearanceTextInputLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCharacterTitle">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/tietCharacterName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textSize="12sp"
android:translationZ="4dp" />
</com.google.android.material.textfield.TextInputLayout>
【问题讨论】:
-
Activity使用的主题是什么?
-
我已经更新了原来的问题,我用于活动的主题现在在原来的答案中。