Android SystemBar(Status Bar 和Navigation Bar)设置 Immersive与Sticky Immersion风格
2017-08-25 13:47
375 查看
Android SystemBar各种风格案例:
Android System Bar(Status Bar 和Navigation Bar)暗淡效果Android Status Bar的隐藏与浮层效果
Android NavigationBar隐藏与浮层
Android SystemBar(Status Bar 和Navigation Bar)设置 Immersive与Sticky Immersion风格
Android 响应System UI状态,焦点改变,手势处理
Using Immersive Full-Screen 模式
在Android4.4 (api 19)中出现新SYSTEM_UI_FLAG_IMMERSIVE和
SYSTEM_UI_FLAG_IMMERSIVE_STICKY的标志,用于实现应用程序去真全屏(go truly “full screen” ).
先来了解下官方中Immersive Full-Screen介绍.
Immersive 各种状态:
使用Imnersive模式后,第一次会出现提示框,且这里的system bar 浮现在界面布局之上。
Sticky Immersion状态:
使用Sticky Immersion模式后,这里的system bar 浮现在界面布局之上,且过一会儿会自动消失。
4. 1 使用 Non-Sticky Immersion:
使用了SYSTEM_UI_FLAG_IMMERSIVE 标志,再与其他标志一起结合使用,当用户屏幕中滑动,System bar会重新出现。/** * 隐藏NavigationBar */ var action_navigation_bar_hide = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION /** * 全屏,会隐藏StatusBar */ var action_hide_status_bar = View.SYSTEM_UI_FLAG_FULLSCREEN /** * 系统4.1或者更高版本,可以使StatusBar浮在内容上面, * * 与 View.SYSTEM_UI_FLAG_FULLSCREEN效果类似 */ var action_hide_status_bar_float = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN /** * 系统4.1或者更高版本,可以让NavigationBar浮在内容上面。 */ var action_navigation_bar_hide_float = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION /** * 与SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION或者SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN * 结合使用,确保布局稳定 */ var action_stable = View.SYSTEM_UI_FLAG_LAYOUT_STABLE /** * 系统4.4 出现,该flag可以让触碰屏幕,程序重新出现System bar。 */ var action_immersive = View.SYSTEM_UI_FLAG_IMMERSIVE /** * Immersive风格 */ fun setImmersiveStyle(window: Window) { var flag = action_navigation_bar_hide or action_hide_status_bar or action_navigation_bar_hide_float or action_hide_status_bar_float or action_stable or action_immersive window.decorView.systemUiVisibility = flag }
效果如下:
4. 2 使用Sticky Immersion模式:
使用了SYSTEM_UI_FLAG_IMMERSIVE_STICKY标志,再与其他标志一起结合使用,当用户屏幕中滑动,System bar会重新出现,但过一会儿会自动消失。
/** * 隐藏NavigationBar */ var action_navigation_bar_hide = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION /** * 全屏,会隐藏StatusBar */ var action_hide_status_bar = View.SYSTEM_UI_FLAG_FULLSCREEN /** * 系统4.1或者更高版本,可以使StatusBar浮在内容上面, * * 与 View.SYSTEM_UI_FLAG_FULLSCREEN效果类似 */ var action_hide_status_bar_float = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN /** * 系统4.1或者更高版本,可以让NavigationBar浮在内容上面。 */ var action_navigation_bar_hide_float = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION /** * 与SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION或者SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN * 结合使用,确保布局稳定 */ var action_stable = View.SYSTEM_UI_FLAG_LAYOUT_STABLE /** * 系统4.4 出现,该flag触碰屏幕,可以让系统bar出现,但是一会儿自动消失。Sticky方式 */ var action_immersive_sticky = View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY /** * Sticky风格 */ fun setStickyStyle(window: Window) { var flag = action_navigation_bar_hide or action_hide_status_bar or action_hide_status_bar_float or action_navigation_bar_hide_float or action_stable or action_immersive_sticky window.decorView.systemUiVisibility = flag }
效果如下:
本项目案例:https://github.com/13767004362/ManageSystemUIDemo
参考资源:官方介绍:https://developer.android.google.cn/training/system-ui/index.html
相关文章推荐
- Android System Bar(Status Bar 和Navigation Bar)暗淡效果
- Android 4.4 实现透明状态栏Translucent system bar(Status bar)
- Android开发:Translucent System Bar 的最佳实践
- Android设置logcat的System.out过滤不起作用的解决
- Android 的系统属性(SystemProperties)设置分析
- 设置Ionic2全局IOS/Android/WindowPhone风格
- Android实战技巧:用TextView实现Rich Text---在同一个TextView中设置不同的字体风格
- android中getSystemService通过系统提供的Manager接口来访问及设置服务数据
- 黄聪:ionic使用ion-nav-bar设置了bar-positive类但在安卓Android设备中无法置底
- android 高版本函数actionBarSetup()要在低版本使用设置方法VERSION_CODES
- Feature Pack: SetBarStyle 设置风格
- Android--操作系统的SystemBar
- Android 设置Activity全屏显示,没有TitleBar;自定义TitleBar
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法
- android shape设置背景风格为圆角
- Android在xml中设置组件风格(圆角,点击效果selector,边框,进度条风格,动画)TextView文字透明度
- android actionbar设置返回不指定ParentName
- Android 开发:Translucent System Bar 的最佳实践
- android设置titlebar--带button。
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法