gpt4 book ai didi

android - 如何在 android 中更改 Material DateRangePicker 颜色?

转载 作者:行者123 更新时间:2023-12-04 15:20:16 25 4
gpt4 key购买 nike

    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());

}
});
我想要这个输出:
enter image description here
我从上面的代码中得到这个输出:
enter image description here
使用绿色刻度解决方案后,我得到了这个输出
enter image description here
我提到了日期选择器的风格:
    <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>

最佳答案

由于您使用的是 Bridge你必须在你的应用主题中添加这些属性:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
<!-- ...... -->
<item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
<item name="materialCalendarFullscreenTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen</item>
<item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item>
</style>
然后您可以在 MaterialDatePicker 中应用主题覆盖。和:
builder.setTheme(R.style.CustomThemeOverlay_MaterialCalendar_Fullscreen)
在哪里:
<style name="CustomThemeOverlay_MaterialCalendar_Fullscreen"
parent="@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="materialCalendarStyle">@style/Custom_MaterialCalendar.Fullscreen</item>
</style>

<style name="Custom_MaterialCalendar.Fullscreen"
parent="@style/Widget.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="android:windowFullscreen">false</item>
</style>
enter image description here
颜色基于 colorPrimary , colorOnPrimary , colorOnPrimary在您的应用主题中定义。您可以在 CustomThemeOverlay_MaterialCalendar_Fullscreen 中覆盖主题:
<style name="CustomThemeOverlay_MaterialCalendar_Fullscreen"
parent="@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="materialCalendarStyle">@style/Custom_MaterialCalendar.Fullscreen</item>
<item name="colorPrimary">@color/...</item>
<item name="colorOnSurface">@color/...</item>
</style>
enter image description here

关于android - 如何在 android 中更改 Material DateRangePicker 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63467055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com