TextInputLayout Сбой при установке пользовательской темы для приложения - PullRequest
0 голосов
/ 19 мая 2019

Следующий код отлично работал с окном ввода.

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/notes"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/text_notes"
        app:boxBackgroundColor="@color/colorWhite">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/et_notes"
            android:fontFamily="sans-serif-black"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </com.google.android.material.textfield.TextInputLayout>

У меня есть собственный шрифт, который можно установить в приложении. После настройки по следующему коду происходит сбой. ниже стиль, используемый для темы приложения.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- 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:textViewStyle">@style/SansSerifTextViewStyle</item>// Custom font style
    <item name="buttonStyle">@style/SanSerifButtonStyle</item> // Custom font style
</style>

Когда я удаляю строку ниже, приложение не падает. Но обрисованный в общих чертах интерфейс пользователя не идет. Пробовал установку через код Java, не работает.

style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"

1 Ответ

0 голосов
/ 20 мая 2019

Материальные компоненты, такие как com.google.android.material.textfield.TextInputLayout (обратите внимание на .material. часть имени пакета), требуют использования темы материала.

На этой странице перечислены подходящие темы для использования:

https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md#4-change-your-app-theme-to-inherit-from-a-material-components-theme

Вам придется изменить тему вашего приложения с этой

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

, например, на эту

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
...