如果使用 FLAG_LAYOUT_NO_LIMITS,则无法使用 setStatusBarColor 设置 StatusBar 颜色

Can't set StatusBar color with setStatusBarColor if FLAG_LAYOUT_NO_LIMITS is used

我正在尝试在 NavigationBar 后面绘制布局。为此,我将 FLAG_LAYOUT_NO_LIMITS 设置如下:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

这确实导致布局绘制在 NavigationBar 后面,但它也将 StatusBar 背景颜色设置为 white/transparent。 使用 getWindow().setStatusBarColor(Color.RED); 更改状态栏颜色无效。

我所有的工作都是动态的,不能使用和设置 .xml 文件的样式。 这是 FLAG_LAYOUT_NO_LIMITS 的已知行为吗?

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

还有check this