对于Lollipop +,我试图从片段中设置状态栏半透明。调用活动的布局包含FrameLayout,活动使用SupportFragmentManager将原始片段替换为新片段。在新片段的onViewCreated中我使用ContextThemeWrapper来设置新主题。主题包含几个更改,将状态栏更改为半透明是其中之一。其他主题更改生效,但状态栏保持调用活动主题的颜色。
注意:如果我将调用活动的主题设置为半透明操作栏主题,则活动和片段都具有半透明状态栏,因此它不是主题的问题。
答案 0 :(得分:1)
1。您是否可以尝试以编程方式设置setStatusBarColor
透明度
getWindow().setStatusBarColor(Color.TRANSPARENT);
2。在styles.xml
中添加以下内容即可实现。
<item name="android:statusBarColor">@android:color/transparent</item>
答案 1 :(得分:1)
在片段的onCreateView方法中,添加了:
getActivity().getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
getActivity().getWindow().setStatusBarColor(Color.TRANSPARENT );
如果只是在一个半透明的状态栏之后,原来不需要更改主题。