我有一个数据选择器:
val builder = MaterialDatePicker.Builder.dateRangePicker()
val picker = builder.build()
picker.show(childFragmentManager, picker.toString())
状态栏颜色为黑色:
我希望它像托管此 DataPicker 的片段一样透明:
怎么做?
答案 0 :(得分:3)
在对材料日期选择器的主题进行一些深入研究后,我能够弄清楚:
在您的活动主题中,您必须添加
<item name="materialCalendarFullscreenTheme">@style/CustomMaterialCalendarFullscreenTheme</item>
并按照以下方式创建主题
<style name="CustomMaterialCalendarFullscreenTheme" parent="ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen">
<item name="android:windowIsFloating">false</item>
</style>
您可以通过将其添加到 CustomMaterialCalendarFullscreenTheme
来添加自定义状态栏颜色:
<item name="android:statusBarColor">@color/someCoolColor</item>
注意:如果您对导致问题的原因不感兴趣,可以在此处停止阅读!
原因是 ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen
的祖先之一将 android:windowIsFloating
设置为 true
并且如果“浮动”内容非常大(在我们的例子中,它是全屏的) Android 决定将状态栏颜色更改为黑色。