2

我试图如下动态更新状态栏,但收到警告标志 FLAG_TRANSLUCENT_STATUS 现在已被贬低,我该如何解决这个问题?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

        // clear FLAG_TRANSLUCENT_STATUS flag:
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

        // add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

        // finally change the color
        getWindow().setStatusBarColor(ContextCompat.getColor(this, color));
}
4

1 回答 1

2

我花了太多时间来获得正确的答案,因为我的状态栏颜色也有错误。如果有人有同样的问题,我会把答案放在这里。

您需要将状态栏颜色设置为透明,就像在代码中使用最后一个构建版本作为“if”语句一样,这是肯定的。但是,您还需要在根视图中设置此布局属性。

android:fitsSystemWindows="false"

希望这将帮助您解决 Android 30 中的状态栏错误。

于 2021-09-17T08:00:00.590 回答