我一直在使用 Material design 和 CollapsingToolbarLayout 并希望在其中一个片段中使用半透明状态栏。我有带有 AppTheme 的 MainActivity(在 style.xml 中半透明状态栏和覆盖是假的)。我有 Fragment1 和 Fragment2 Fragment1 不应该有半透明状态栏。与primaryDarkColor 一样正常。但是,在 Fragment2 中,我需要以编程方式打开半透明状态栏。我通过这种方式实现了它:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Making status bar transparent
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window w = getActivity().getWindow(); // in Activity's onCreate() for instance
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
当我再次回到 Fragment1 时,状态栏是隐藏的。我想我应该禁用半透明状态栏 onPause() 或 onStop()。但不知道如何以propromatically方式进行。有什么建议么?