android 动态控制状态栏显示和隐藏的方法实例
16lz
2021-01-23
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之ListView的item布局问题总结
- Android:Error retrieving parent for item: No resource found
- Android 性能监控与分析方法
- Android 解决setRequestedOrientation之后手机屏幕的旋转不触发o
- android ui 布局性能优化
- 面试例题6:两种方法将图像显示在View上
- Android NDK报错(Eclipse)及解决方法