如何在android中更改材质DateRangePicker颜色? dateLI.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图){ MaterialDatePicker.Builder=MaterialDatePicker.Builder.dateRangePicker(); CalendarConstraints.Builder constraintsBuilder=新的CalendarConstraints.Builder(); builder.setTheme(R.style.DateRangePickerTheme); setCalendarConstraints(constraintsBuilder.build()); MaterialDatePicker-picker=builder.build(); 断言getFragmentManager()!=null; show(getFragmentManager(),picker.toString()); } });
我想要这个输出: 我从上面的代码中得到这个输出: 在使用绿色勾号解决方案后,我得到这个输出 我提到了datepicker的风格:如何在android中更改材质DateRangePicker颜色? dateLI.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图){ MaterialDatePicker.Builder=MaterialDatePicker.Builder.dateRangePicker(); CalendarConstraints.Builder constraintsBuilder=新的CalendarConstraints.Builder(); builder.setTheme(R.style.DateRangePickerTheme); setCalendarConstraints(constraintsBuilder.build()); MaterialDatePicker-picker=builder.build(); 断言getFragmentManager()!=null; show(getFragmentManager(),picker.toString()); } });,android,material-design,android-datepicker,material-components-android,materialdatepicker,Android,Material Design,Android Datepicker,Material Components Android,Materialdatepicker,我想要这个输出: 我从上面的代码中得到这个输出: 在使用绿色勾号解决方案后,我得到这个输出 我提到了datepicker的风格: dateLI.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { MaterialDatePicker.Builder<Pair<L
dateLI.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MaterialDatePicker.Builder<Pair<Long, Long>> builder = MaterialDatePicker.Builder.dateRangePicker();
CalendarConstraints.Builder constraintsBuilder = new CalendarConstraints.Builder();
builder.setTheme(R.style.DateRangePickerTheme);
builder.setCalendarConstraints(constraintsBuilder.build());
MaterialDatePicker picker = builder.build();
assert getFragmentManager() != null;
picker.show(getFragmentManager(), picker.toString());
}
});
@样式/自定义\材料Calendar.Fullscreen
水平的
假的
由于您使用的是桥
主题,因此必须在应用程序主题中添加以下属性:
<style name="DateRangePickerTheme" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
<item name="materialCalendarStyle">@style/Custom_MaterialCalendar.Fullscreen</item>
<item name="android:orientation">horizontal</item>
</style>
<style name="Custom_MaterialCalendar.Fullscreen" parent="@style/Widget.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="android:windowFullscreen">false</item>
</style>
其中:
builder.setTheme(R.style.CustomThemeOverlay_MaterialCalendar_Fullscreen)
`
@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen`
试试这个….实际上你不必使用这一行:
`<style name="DateRangePickerTheme"parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
<item name="materialCalendarFullscreenTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen</item></style>`
您可以通过以下方式设置应用程序主题:
builder.setTheme(R.style.CustomThemeOverlay_MaterialCalendar_Fullscreen)
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.Bridge">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorSecondary">@color/colorSecondary</item>
<!-- Picker styles and themes. -->
<item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
<item name="materialCalendarFullscreenTheme">@style/CustomThemeOverlay_MaterialCalendar_Fullscreen</item>
<item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item>
</style>
@颜色/原色
@彩色/彩色次级
@样式/Widget.MaterialComponents.MaterialCalendar
@样式/自定义屏幕全屏显示材料日历
@style/ThemeOverlay.MaterialComponents.MaterialCalendar
然后,通过以下方式设置Custom Themeo Overlay_MaterialCalendar_全屏:
builder.setTheme(R.style.CustomThemeOverlay_MaterialCalendar_Fullscreen)
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.Bridge">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorSecondary">@color/colorSecondary</item>
<!-- Picker styles and themes. -->
<item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
<item name="materialCalendarFullscreenTheme">@style/CustomThemeOverlay_MaterialCalendar_Fullscreen</item>
<item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item>
</style>
@颜色/你的颜色
@颜色/你的颜色
就这样。生成器将自动设置为应用程序的主题,其中日历主题设置为设计主题。只有当我在应用程序中使用不同的日历(每个日历有不同的主题)时,我才会使用
setTheme
。好的,我更改了,但是我如何更改日期选择器的颜色,就像我在问题中附加选择器一样?我有黑白日期选择器。@aartifoxdeveloper检查更新的答案。颜色基于应用程序主题中定义的colorPrimary
,colorOnPrimary
,colorOnPrimary
。您可以覆盖自定义主题的全屏显示\u MaterialCalendar\u
中的主题。您对我的问题中附带的图像有什么想法吗?如何将此日期选择器与日期的编辑文本一起附加
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.Bridge">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorSecondary">@color/colorSecondary</item>
<!-- Picker styles and themes. -->
<item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
<item name="materialCalendarFullscreenTheme">@style/CustomThemeOverlay_MaterialCalendar_Fullscreen</item>
<item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item>
</style>
<style name="CustomThemeOverlay_MaterialCalendar_Fullscreen"
parent="@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="colorPrimary">@color/yourcolor</item>
<item name="colorOnSurface">@color/yourcolor</item>
</style>