Как исправить проблемы пользовательского интерфейса с темой MaterialComponents NoAction

Я использую Theme.MaterialComponents.DayNight.NoActionBar в качестве темы приложения, и у меня возникают странные проблемы, когда дело доходит до цветов кнопок, и есть некоторые проблемы с интервалом, с которыми я сталкиваюсь.

Я читал, что добавление <item name="viewInflaterClass">androidx.appcompat.app.AppCompatViewInflater</item> должно исправить это, и это так, но я хочу знать, есть ли другой способ изменить его, чтобы он работал, как раньше, поскольку при таком подходе могут быть проблемы.

Это не только кнопки выбора даты, но и DialogFragments.

DatePickerDialog затемнил кнопки в androidx.fragment.app. DialogFragment

ColorPrimary устанавливается для самой кнопки. Есть ли другой способ перезаписать это поведение?

Вот мой стиль

    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.FullScreen">
        <item name="colorPrimary">@color/colorPrimary</item> // Blue
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="colorControlNormal">@color/colorControlNormal</item>
        <item name="colorControlActivated">@color/colorControlActivated</item>
        <item name="colorSwitchThumbNormal">@color/colorSwitchThumbNormal</item>
        <item name="android:textColorPrimary">@android:color/primary_text_light</item>
        <item name="android:textColorSecondary">@android:color/secondary_text_light</item>
        <item name="android:textColorPrimaryInverse">@android:color/primary_text_dark</item>
        <item name="android:windowBackground">@android:color/background_light</item>

        <item name="dialogTheme">@style/DialogStyle</item>
        <item name="alertDialogTheme">@style/AlertDialogStyle</item>

        <item name="md_positive_color">@color/dialog_positive_text</item>
        <item name="md_neutral_color">@color/dialog_neutral_text</item>
        <item name="md_negative_color">@color/dialog_negative_text</item>
//Adding the bellow line fixes it
        <item name="viewInflaterClass">androidx.appcompat.app.AppCompatViewInflater</item>
    </style>

    <style name="Theme.MaterialComponents.DayNight.NoActionBar.FullScreen" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowTranslucentNavigation">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

Вот как это должно выглядеть,  введите описание изображения здесь

Но выглядит вот так с этой темой

введите описание изображения здесь


person BRDroid    schedule 14.10.2019    source источник
comment
Вы задаете 3 разных вопроса в одном и том же вопросе.   -  person Gabriele Mariotti    schedule 14.10.2019
comment
Для средства выбора также проверьте MaterialDatePicker. Для AlertDialog используется атрибут materialAlertDialogTheme и проверьте это сообщение, чтобы настроить кнопки. Также добавьте colorOnPrimary в тему своего приложения   -  person Gabriele Mariotti    schedule 14.10.2019
comment
IIRC, эта проблема была исправлена ​​некоторое время назад в альфа-версии библиотеки. Вы можете использовать последнюю бета-версию библиотеки, которая должна быть достаточно стабильной для ваших нужд.   -  person Edric    schedule 18.10.2019