如何设置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
相关产品推荐
相关产品推荐

