如何更改 ListPreference 按钮的颜色?

How to change ListPreference button colors?

我使用波纹管样式将对话框背景颜色更改为深色,在首选项页面中我使用 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>

有没有办法改变这个按钮的颜色?

终于找到解决办法了。我不明白 android:alertDialogThemealertDialogTheme(没有 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>