Как изменить цвет кнопки ListPreference?

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

<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?

3
0
903
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец я нашел решение. Я не понимаю, в чем разница между 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>

Другие вопросы по теме