Android DatePickerDialog强调色(在v21 +中)

mar*_*142 7 android android-theme android-5.0-lollipop

我正在为我的应用程序使用支持库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>
Run Code Online (Sandbox Code Playgroud)

值-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>
Run Code Online (Sandbox Code Playgroud)

And*_*rew 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>
Run Code Online (Sandbox Code Playgroud)

  • @kaftanati不是真的,如果使用appcompat v21,这是有效的.你只需要在颜色项中省略'android:'前缀. (6认同)