Как изменить цвета кнопки ListPreference? - PullRequest
0 голосов
/ 04 апреля 2019

Я использую стиль ниже, чтобы изменить цвет фона диалога на темный. На странице настроек я использую ListPreference, и после применения этого стиля кнопка ListPreference cancel исчезла на фоне диалога.

<style name="AppThemeBase" parent="Theme.MaterialComponents.DayNight">
    <item name="colorPrimary">#212D3B</item>
    <item name="colorPrimaryDark">#172331</item>
    <item name="colorAccent">#61A3D7</item>
    <item name="android:textColorPrimary">#FFFFFF</item>
    <item name="android:dialogTheme">@style/AppTheme.Dialog</item>
    <item name="android:alertDialogTheme">@style/AppTheme.Dialog</item>
</style>

<style name="AppTheme.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:background">#212D3B</item>
    <item name="colorPrimary">#61A3D7</item>
    <item name="colorPrimaryDark">#8DB2D3</item>
    <item name="colorAccent">#61A3D7</item>
</style>

Есть ли способ изменить цвет этой кнопки?

ListPreference

1 Ответ

0 голосов
/ 04 апреля 2019

Наконец я нашел решение. Я не понимаю, что отличается между android:alertDialogTheme и alertDialogTheme (без android:), но экран настроек использовал alertDialogTheme для стилизации диалогов. При добавлении нижнего элемента в AppThemeBase моя проблема решена.

<item name="alertDialogTheme">@style/AppTheme.Dialog</item> 

Финал AppThemeBase:

<style name="AppThemeBase" parent="Theme.MaterialComponents.DayNight">
    <item name="colorPrimary">#212D3B</item>
    <item name="colorPrimaryDark">#172331</item>
    <item name="colorAccent">#61A3D7</item>
    <item name="android:textColorPrimary">#FFFFFF</item>
    <item name="android:dialogTheme">@style/AppTheme.Dialog</item>
    <item name="android:alertDialogTheme">@style/AppTheme.Dialog</item>
    <item name="alertDialogTheme">@style/AppTheme.Dialog</item>
</style>

<style name="AppTheme.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:background">#212D3B</item>
    <item name="colorPrimary">#61A3D7</item>
    <item name="colorPrimaryDark">#8DB2D3</item>
    <item name="colorAccent">#61A3D7</item>
</style>
...