在运行时删除FLAG_TRANSLUCENT_STATUS

时间:2017-03-23 12:23:12

标签: java android flags android-windowmanager android-window

我有一个MainActivity有很多Fragment s并且在一个特定的片段中我想在系统栏后面绘制,所以我在运行时应用以下标志:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    }

我现在想要的是当用户退出此Fragment并输入另一个以删除该标志时,状态栏后面没有内容。我尝试将null作为参数传递给setFlags()方法,但这会产生错误。我搜索了remove()unSet()方法,但都不存在。那么我该如何删除另一个Fragment的那个标志呢?

2 个答案:

答案 0 :(得分:2)

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

答案 1 :(得分:0)

由于您使用的是Fragment -

你应该去 -

getActivtiy().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);