在我的Android应用程序中,有一个MainActivity和许多片段。在HomeFragment我需要有一个紫色的状态栏,但在其他白色。App有
style name="AppStyle" parent="Theme.MaterialComponents.Light.NoActionBar"
对于我使用的MainActivity
<style name="Theme.ActivityStatusBarPurple" parent="AppStyle">
<item name="android:statusBarColor">@color/color_purple</item>
</style>
在HomeFragment的onCreateView
中,我使用
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
在HomeFragment的onDestroyView
中,我使用
requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
我得到了部分理想的结果:状态栏有紫色,但有两个副作用:我的布局重叠导航栏在底部和紫色的颜色是可见的其他片段状态栏。
如何只重叠状态栏而不改变导航栏,以及如何为其他片段状态栏保持白色?
1条答案
按热度按时间eimct9ow1#
我找到了一个非常简单的解决办法。在每个片段的
onCreateView
中,我设置了这行:无需更改主题