从片段

时间:2015-12-01 02:51:41

标签: android-fragments android-theme

对于Lollipop +,我试图从片段中设置状态栏半透明。调用活动的布局包含FrameLayout,活动使用SupportFragmentManager将原始片段替换为新片段。在新片段的onViewCreated中我使用ContextThemeWrapper来设置新主题。主题包含几个更改,将状态栏更改为半透明是其中之一。其他主题更改生效,但状态栏保持调用活动主题的颜色。

注意:如果我将调用活动的主题设置为半透明操作栏主题,则活动和片段都具有半透明状态栏,因此它不是主题的问题。

2 个答案:

答案 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 );

如果只是在一个半透明的状态栏之后,原来不需要更改主题。