动态隐藏/显示系统状态栏

本文介绍两种隐藏Android系统状态栏的方法,一种是完全隐藏系统状态栏实现沉浸式体验,另一种是仅隐藏通知图标保留时间显示,同时提供代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述

我只想安安静静地看张图,可是系统栏上的通知、无线/SIM卡等一系列图标太碍眼了有木有,怎么可以动态隐藏呢?

模式一:隐藏掉系统状态栏,安安静静地做个美男子

    //显示系统状态栏
    private void showStatusBar() {

        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隐藏状态栏的布局
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//内容布局填满屏幕
        );

    }

    //隐藏系统状态栏
    private void hideStatusBar() {

        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隐藏状态栏的布局
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//内容布局填满屏幕
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隐藏状态栏
                        | View.SYSTEM_UI_FLAG_FULLSCREEN//内容全屏展示
                        | View.SYSTEM_UI_FLAG_IMMERSIVE
        );
    }

这里写图片描述

模式二:隐藏掉系统通知,显示时间,看图又不误事

    //显示系统状态栏
    private void showStatusBar() {
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(View.VISIBLE);
    }

    //隐藏系统状态栏
    private void hideStatusBar() {
        View decorView = getWindow().getDecorView();
        //设置成低调模式
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
    }

这里写图片描述

Tip:

一、DecorView为整个Window界面的最顶层View。
二、DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。

三、在使用模式一时,为了防止隐藏掉状态栏后引起内容布局重新绘制而导致视图变化,在oncreate()时要先调用下showStatusBar()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值