我正在为我的应用程序使用支持库21.我的主题也在值-v21中定义,但DatePickerDialog不使用强调颜色作为背景和文本颜色.
如何将此颜色更改为强调色?
我目前的themes.xml是
值/的themes.xml
<style name="AppTheme" parent="AppTheme.Base" /> <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <item name="windowActionModeOverlay">true</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
值-V21 /的themes.xml
<style name="AppTheme" parent="AppTheme.Base"> <item name="android:colorPrimary">@color/colorPrimary</item> <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:colorAccent">@color/colorAccent</item> <item name="android:alertDialogTheme">@style/AppTheme.AlertDialog</item> </style> <style name="AppTheme.AlertDialog" parent="android:Theme.Material.Light.Dialog.Alert"> <item name="android:colorPrimary">@color/colorPrimary</item> <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:colorAccent">@color/colorAccent</item> </style>
解决方法
您的对话框主题需要扩展Theme.AppCompat.Light.Dialog而不是Theme.Material.Light.Dialog.Alert.这是一个例子:
<!-- Base Theme Styles --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- my theme stuff --> ... <!-- dialog theme stuff --> <item name="android:dialogTheme">@style/AppTheme.DialogTheme</item> </style> <!-- Styles for pop-up dialogs --> <style name="AppTheme.DialogTheme" parent="Theme.AppCompat.Light.Dialog"> <item name="android:colorPrimary">@color/primaryColor</item> <item name="android:colorPrimaryDark">@color/primaryColorDark</item> <item name="android:colorAccent">@color/accentColor</item> </style>