在运行时删除 FLAG_TRANSLUCENT_STATUS
Remove FLAG_TRANSLUCENT_STATUS at runtime
我有一个 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()
方法,但 none 存在。那么我应该如何删除另一个 Fragment
的标志?
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
FLAG_TRANSLUCENT_STATUS
got deprecated 有以下建议:
Use Window#setStatusBarColor(int)
with a half-translucent color instead.
用十六进制值 #6F000000
声明了颜色,然后在代码中:
getWindow().setStatusBarColor(ContextCompat.getColor(context, R.color.my_color))
我有一个 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()
方法,但 none 存在。那么我应该如何删除另一个 Fragment
的标志?
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
FLAG_TRANSLUCENT_STATUS
got deprecated 有以下建议:
Use
Window#setStatusBarColor(int)
with a half-translucent color instead.
用十六进制值 #6F000000
声明了颜色,然后在代码中:
getWindow().setStatusBarColor(ContextCompat.getColor(context, R.color.my_color))