Android DatePickerDialog强调色(在v21 +中)

时间:2014-12-05 15:41:23

标签: android android-5.0-lollipop android-theme

我正在为我的应用使用支持库21。我的主题也在 values-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>

1 个答案:

答案 0 :(得分:19)

您的对话框主题需要扩展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>