如何修改Android Material Date Picker的年份/月份选择器Chevron颜色?
修改Android Material Date Picker的Chevron及年份/月份选择器颜色
通过自定义主题属性修改(推荐)
Material Date Picker的相关颜色可通过主题属性直接覆盖,无需复杂代码:
- 定义自定义DatePicker主题
在res/values/styles.xml(或对应版本的样式文件)中添加如下样式:
<!-- Material3 主题示例 --> <style name="CustomDatePickerTheme" parent="Theme.Material3.Light.DatePicker"> <!-- 修改年份/月份选择器的Chevron箭头颜色 --> <item name="materialCalendarHeaderNavigationIconTint">@color/your_desired_color</item> <!-- 年份选择器默认文本颜色 --> <item name="colorOnSurface">@color/year_default_text</item> <!-- 年份选择器选中状态的文本及背景颜色 --> <item name="colorPrimary">@color/year_selected_color</item> </style> <!-- Material2 主题示例(兼容旧版本) --> <style name="CustomDatePickerTheme" parent="Theme.MaterialComponents.Light.DatePicker"> <item name="calendarHeaderNavigationIconTint">@color/your_desired_color</item> <item name="colorOnSurface">@color/year_default_text</item> <item name="colorPrimary">@color/year_selected_color</item> </style>
- 初始化DatePicker时应用主题
在代码中创建DatePicker实例时,指定自定义主题:
// Kotlin示例 val datePicker = MaterialDatePicker.Builder.datePicker() .setTheme(R.style.CustomDatePickerTheme) .build() datePicker.show(supportFragmentManager, "DATE_PICKER")
// Java示例 MaterialDatePicker<Long> datePicker = MaterialDatePicker.Builder.datePicker() .setTheme(R.style.CustomDatePickerTheme) .build(); datePicker.show(getSupportFragmentManager(), "DATE_PICKER");
关键属性说明
materialCalendarHeaderNavigationIconTint(Material3)/calendarHeaderNavigationIconTint(Material2):控制对话框顶部切换年/月视图的Chevron箭头颜色,同时覆盖年份选择器中的左右箭头颜色。colorPrimary:控制年份选择器中选中年份的文本颜色及背景高亮色。colorOnSurface:控制年份选择器中未选中年份的文本颜色。
内容的提问来源于stack exchange,提问作者Nav Nav
相关产品推荐
相关产品推荐

