Skip to content

Android7.0及以后沉浸式状态栏变灰问题

在activity setContentView 之前,使用反射修改DecorViewmSemiTransparentStatusBarColor颜色。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    try {
        Class decorViewClazz = Class.forName("com.android.internal.policy.DecorView");
        Field field = decorViewClazz.getDeclaredField("mSemiTransparentStatusBarColor");
        field.setAccessible(true);
        field.setInt(getWindow().getDecorView(), Color.TRANSPARENT);  // 改为透明
    } catch (Exception e) {
        Log.e(TAG, "onCreate: ", e);
    }
}

作者: RustFisher
联系: rf.cs@foxmail.com
博客: rustfisher.com | RustFisher cnblog
示例: AndroidTutorial Gitee, Tutorial Github
链接: https://www.an.rustfisher.com/android/ui/statusbar/android-7-adjust-status-bar-color/
一家之言,仅当抛砖引玉。如有错漏,还请指出。