Android 安卓透明系统状态栏

作者: _10_01_ | 来源:发表于2019-01-10 10:42 被阅读5次

    安卓从4.4开始支持透明系统状态栏(https://developer.android.google.cn/about/versions/android-4.4#UI);

    可以通过xml设置主题或代码来设置,记录下代码调整状态栏:

    getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
        WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
    );
    

    如果通过此代码来调整,将导致系统状态栏和导航栏都将变透明,因将导航栏改为透明后布局会下沉,故不符合需求;

    Window window = getWindow();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
        window.setStatusBarColor(Color.TRANSPARENT);
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    }
    

    此代码即可使系统状态栏全透明,且不会影响导航栏。

    参考资料

    透明系统状态栏
    Dim the system bars
    StatusNavigationTransparent
    Lollipop : draw behind statusBar with its color set to transparent
    Android Completely transparent Status Bar?

    相关文章

      网友评论

        本文标题:Android 安卓透明系统状态栏

        本文链接:https://www.haomeiwen.com/subject/bzporqtx.html