如何更改ListPreference按钮颜色?

3

我使用下面的样式将对话框背景颜色改为黑色,在首选项页面中我使用ListPreference,但是在应用此样式后,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

1个回答

9
最终我找到了解决方案。我不明白 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>

问题是,这适用于您应用程序中的每个对话框。 - Farid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接