Здравствуйте, я новичок в android темах и стилях. Согласно официальной документации
Стиль - это набор атрибутов, которые определяют внешний вид для одного представления. Стиль может указывать такие атрибуты, как цвет шрифта, размер шрифта, цвет фона и многое другое. Тема - это тип стиля, который применяется ко всей иерархии приложения, действия или представления, а не только к отдельному представлению
Но я не могу изменить некоторые атрибуты с помощью android: тема атрибут, но я могу изменить с помощью стиль
Здесь у меня есть этот файл стиля:
<style name="Style.InputLayout" parent="Widget.Design.TextInputLayout">
<item name="errorTextAppearance">@style/ErrorTextAppearance</item>
<item name="hintTextAppearance">@style/HintTextAppearance</item>
<item name="errorEnabled">true</item>
</style>
<style name="HintTextAppearance" parent="TextAppearance.Design.Hint">
<!-- Inactive and Active label color-->
<item name="android:textColor">?attr/colorShadow</item>
</style>
<style name="ErrorTextAppearance" parent="TextAppearance.Design.Error">
<!-- Error text color-->
<item name="android:textColor">?attr/colorError</item>
</style>
И у меня TextInputLayout как:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Style.InputLayout"
android:hint="Username">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.EditText"/>
</com.google.android.material.textfield.TextInputLayout>
Это работает, как я ожидал. Но когда я меняю атрибут style на android: theme в TextInputLayout, как показано ниже:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Style.InputLayout"
android:hint="Username">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.EditText"/>
</com.google.android.material.textfield.TextInputLayout>
Это не работает. Почему это так?