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

如何设置Android TimePicker对话框手动输入子对话框的头部文字颜色

修改TimePicker手动输入对话框标题颜色的实现方法

你需要通过自定义主题中的android:windowTitleStyle属性修改标题文字颜色,具体操作如下:

操作步骤

  • 第一步:新增自定义标题文本样式
    在你的styles.xml文件中添加如下样式配置,可自行调整textColor为目标色值:
<style name="CustomTimePickerTitleStyle" parent="TextAppearance.AppCompat.Title">
    <item name="android:textColor">@color/你需要的颜色色值</item>
    <!-- 可选配置:调整标题字体大小、粗细 -->
    <item name="android:textSize">18sp</item>
    <item name="android:textStyle">bold</item>
</style>
  • 第二步:在你现有的UIDTimePickerTheme中引用该标题样式
    在原有样式中新增android:windowTitleStyle配置项,修改后完整样式如下:
<style name="UIDTimePickerTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="colorControlActivated">@color/orange_level_30</item>
    <item name="colorControlHighlight">@color/aqua_level_30</item>
    <item name="colorAccent">@color/blue_level_30</item>
    <item name="colorControlNormal">@color/green_level_30</item> 
    <item name="android:textColorPrimary">@color/gray_level_80</item>
    <item name="android:textColorSecondary">@color/gray_level_45</item>
    <!-- 新增标题样式配置 -->
    <item name="android:windowTitleStyle">@style/CustomTimePickerTitleStyle</item>
</style>
  • 第三步:修正TimePickerDialog初始化逻辑,传入自定义主题
    你现有代码中初始化TimePickerDialog时未指定自定义主题,需要调整构造参数传入你的自定义主题:
public void showTimePicker(@NonNull final Object timePickerTime, final boolean isRangeType) {
    final int hour = calendar.get(Calendar.HOUR_OF_DAY);
    final int minutes = calendar.get(Calendar.MINUTE); 
    // 构造方法第二个参数传入自定义主题
    TimePickerDialog timePickerDialog = new TimePickerDialog(this.getActivity(), R.style.UIDTimePickerTheme, new TimeSetListener((ObservableField) timePickerTime, isRangeType), hour, minutes, true);
    timePickerDialog.show(); 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:45:04