Android NavigationBar隐藏与浮层

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状态,焦点改变,手势处理

Hiding the Navigation Bar


Navigation Bar 显示状态:

Android NavigationBar隐藏与浮层_第1张图片

使用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_NAVIGATIONSYSTEM_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
    }

效果如下

Android NavigationBar隐藏与浮层_第2张图片

本项目案例:https://github.com/13767004362/ManageSystemUIDemo

参考资源

  • 官方介绍:https://developer.android.google.cn/training/system-ui/index.html

你可能感兴趣的:(Android,定制化智能硬件,android,导航bar,systembar)