Android fragments 从片段设置半透明状态栏

Android fragments 从片段设置半透明状态栏,android-fragments,android-theme,Android Fragments,Android Theme,对于棒棒糖+,我试图将状态栏设置为半透明的片段。调用活动的布局包含FrameLayout,该活动使用SupportFragmentManager将原始片段替换为新片段。在新片段的onViewCreated中,我使用ContextThemeWrapper设置新主题。该主题包含若干更改,将状态栏更改为半透明是其中之一。其他主题更改生效,但状态栏保留调用活动主题的颜色 注意:如果我将调用活动的主题设置为半透明的操作栏主题,则活动和片段都有半透明的状态栏,因此主题没有问题。1。您可以尝试通过编程方式设置

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


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

1。您可以尝试通过编程方式设置
setStatusBarColor
透明度吗

getWindow().setStatusBarColor(Color.TRANSPARENT);
2.
styles.xml
中添加以下行是一个很好的方法

<item name="android:statusBarColor">@android:color/transparent</item>
@android:color/transparent

在片段的onCreateView方法中,添加了:

 getActivity().getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
 getActivity().getWindow().setStatusBarColor(Color.TRANSPARENT );

事实证明,如果一个人只是在一个半透明的状态栏之后,改变主题是没有必要的

你们可以发布一些代码来了解更多关于这个问题的信息吗!感谢您让我走这条路,我将在答案中展开更多步骤。
getContext().getTheme().applyStyle(R.style.mytranparentheme,true);视图=充气机。充气(R.layout.fragment\u布局,容器,假);getActivity().getWindow().getDecorView().SetSystemMiviability(视图.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_全屏);如果(Build.VERSION.SDK_INT>=21){getActivity().getWindow().setStatusBarColor(Color.TRANSPARENT);}
对我不起作用:/