android 动态控制状态栏显示和隐藏的方法实例
16lz
2021-12-04
android想要应用运行时全屏有一种方法是在activity的onCreat方法中加入如下代码:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);并且需要在setContentView()之前,否则无效过。从这么多的苛刻条件可以看出这种方法无法满足动态控制。 下面的方法可以满足这个需要。调用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 方法二:(试验成功) 直接调用此方法即可实现对状态栏的控制; 代码如下: private void full(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); } }
更多相关文章
- [android]布局(容器)简介和使用方法
- Android(安卓)自定义View(API解析+Demo)
- Android实现ListView异步加载图片
- android之ListView的item布局问题总结
- Android监听Home、电源键
- android ApiDemo学习(一)service总结
- Android中ExpandableListView控件基本使用
- Android(安卓)studio 3.1.4 无法获取pom文件
- android 神奇的android:clipChildren属性