You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Spinner DatePicker对话框按钮文本颜色设置方法

问题描述

我使用Spinner样式的DatePicker,父主题为Theme.AppCompat.Light.Dialog,需要设置对话框中「设置日期」(标题)、「取消」和「设置」按钮的文本颜色,当前使用的样式代码如下:

<style name="SpinnerDatePickerDialogDark" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/white</item>
    <item name="android:windowBackground">@color/gray_10</item>
    <item name="android:textColorPrimary">@color/gray_02</item>
    <item name="android:textColorSecondary">@color/white</item>
    <!-- Divider color -->
    <item name="android:colorControlNormal">@color/gray_02</item>
    <item name="android:datePickerStyle">@style/SpinnerDatePicker</item>
</style>

<style name="SpinnerDatePicker" parent="android:Widget.Material.DatePicker">
    <item name="android:datePickerMode">spinner</item>
</style>

对话框截图:
Spinner样式的日期选择器

解决方案

修改底部按钮(取消/设置)的文本颜色

底部操作按钮的颜色默认受colorAccent控制,但如果需要单独设置按钮颜色而不影响其他关联colorAccent的控件,可以在主题中添加按钮样式配置:

<style name="SpinnerDatePickerDialogDark" parent="Theme.AppCompat.Light.Dialog">
    <!-- 保留原有属性 -->
    <item name="colorAccent">@color/white</item>
    <item name="android:windowBackground">@color/gray_10</item>
    <item name="android:textColorPrimary">@color/gray_02</item>
    <item name="android:textColorSecondary">@color/white</item>
    <item name="android:colorControlNormal">@color/gray_02</item>
    <item name="android:datePickerStyle">@style/SpinnerDatePicker</item>

    <!-- 自定义确认按钮(设置)样式 -->
    <item name="buttonBarPositiveButtonStyle">@style/DatePickerPositiveBtn</item>
    <!-- 自定义取消按钮样式 -->
    <item name="buttonBarNegativeButtonStyle">@style/DatePickerNegativeBtn</item>
</style>

<!-- 确认按钮样式 -->
<style name="DatePickerPositiveBtn" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
    <item name="android:textColor">@color/your_positive_color</item>
</style>

<!-- 取消按钮样式 -->
<style name="DatePickerNegativeBtn" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
    <item name="android:textColor">@color/your_negative_color</item>
</style>

修改标题「设置日期」的文本颜色

标题文本颜色默认由android:textColorPrimary控制,若需单独修改标题颜色,可在主题中添加以下属性:

<style name="SpinnerDatePickerDialogDark" parent="Theme.AppCompat.Light.Dialog">
    <!-- 保留原有属性 -->
    ...
    <!-- 单独设置标题颜色 -->
    <item name="android:textColorTitle">@color/your_title_color</item>
</style>

如果部分低版本机型不生效,可替换为textColorAlertDialogTitle:

<item name="textColorAlertDialogTitle">@color/your_title_color</item>

内容的提问来源于stack exchange,提问作者Corey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:01:06