Android SystemBar各种风格案例:
Hiding the Navigation Bar
Navigation Bar 显示状态:
使用SYSTEM_UI_FLAG_HIDE_NAVIGATION
隐藏 navigation bar。以下是代码是同时隐藏StatusBar 和Navigation bar:
/**
* 隐藏NavigationBar
*/
var action_navigation_bar_hide = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
/**
* 全屏,会隐藏StatusBar
*/
var action_hide_status_bar = View.SYSTEM_UI_FLAG_FULLSCREEN
/**
* Navigation bar 正常风格,且设置StatusBar正常隐藏
*/
fun setNavigationBarNormalStyle(window: Window) {
var flag = action_navigation_bar_hide or action_hide_status_bar
window.decorView.systemUiVisibility = flag
}
确保Navigation Bar浮在界面布局之上:
同时使用SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
与SYSTEM_UI_FLAG_LAYOUT_STABLE
可以确保Navigation bar浮在界面布局之上,且不导致界面兼容性问题。
/**
* 全屏,会隐藏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
/**
* 隐藏NavigationBar
*/
var action_navigation_bar_hide = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
/**
* 系统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
/**
* Navigation bar 浮层风格,且设置StatusBar浮层效果
*/
fun setNavigationBarFloatStyle(window: Window) {
var flag = action_navigation_bar_hide or action_hide_status_bar or action_navigation_bar_hide or action_hide_status_bar_float or action_stable
window.decorView.systemUiVisibility = flag
}
效果如下:
本项目案例:https://github.com/13767004362/ManageSystemUIDemo
参考资源: