Android动态控制状态栏

android 想要动态控制状态栏的显示与隐藏有两种方式实现:

第一种是通过View 的setSystemUiVisibility() 方法:其主要参数入下:


	View.SYSTEM_UI_FLAG_FULLSCREEN,   //全屏,状态栏和导航栏不显示
	View.SYSTEM_UI_FLAG_HIDE_NAVIGATION, //状态栏显示,隐藏导航栏
	View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, //布局全屏,状态栏任然显示,但状态栏会盖在布局上
	View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, 
	View.SYSTEM_UI_FLAG_LAYOUT_STABLE,
	View.SYSTEM_UI_FLAG_LOW_PROFILE,
	View.SYSTEM_UI_FLAG_VISIBLE,  //显示状态栏和导航栏
	View.SYSTEM_UI_LAYOUT_FLAGS


虽然此方法可以做到动态控制状态栏的显示,但是此方法只支持android4.0以上的版本。无法适配2.3的系统。


第二中方法是通过设置窗口的属性来实现状态栏的显示:

需要得到WindowManager.LayoutParams 然后通过设置flags来达到效果。废话不多说,上代码:

private void showStatusBar(boolean enable) {
        if (enable) {//隐藏状态栏
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
            getWindow().setAttributes(lp);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
        } else {//显示状态栏
            WindowManager.LayoutParams attr = getWindow().getAttributes();
            attr.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
            getWindow().setAttributes(attr);
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
       }
    }



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值