IllegalArgumentException При попытке использовать @ style / Widget.MaterialComponents.TextInputLayout.OutlinedBox - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь стилизовать TextInputLayout с контуром. Но когда я пытаюсь использовать @style/Widget.MaterialComponents.TextInputLayout.OutlinedBox в атрибуте стиля, мое приложение вылетает с этим исключением:

Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).

Вот тема TextInputLayout, которую я хочу использовать OutlinedBox

Она работала нормально, но неожиданно эта ошибка появилась во время разработки

<style name="LoginTextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
    <item name="boxStrokeColor">@color/text_input_box_stroke</item>

</style>

Global App Theme

<!-- Base application No Action bar theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:fontFamily">@font/opensans_regular</item>
    </style>

1 Ответ

1 голос
/ 25 февраля 2020

Как указано в сообщении об ошибке:

Причина: java .lang.IllegalArgumentException: стиль этого компонента требует, чтобы тема вашего приложения была Theme.MaterialComponents (или потомок)

Вам необходимо изменить тему приложения на тему компонентов материала, например:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
   <!-- ... -->
</style>
...