美文网首页
Android沉浸式状态栏总结

Android沉浸式状态栏总结

作者: 肖霄的潇潇 | 来源:发表于2020-02-24 10:29 被阅读0次

    1.Activity,无toolbar

    1.1 4.4

    1.1.1 设置状态栏颜色
    var decorView = window.decorView
    var option = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
    decorView.systemUiVisibility = option
    

    标题栏和状态栏会重叠
    1.在标题栏的上方添加一个大小和 StatusBar 大小一样假的状态栏 View,View 的 BackgroundColor 可以自己设置成标题栏一样的颜色
    decorView.addView(statusBarView);
    2.给decorView设置paddingTop
    decorView.setPadding(0, mBarConfig.getStatusBarHeight(), 0, 0)

    1.1.2 图片伸入状态栏

    var decorView = window.decorView
    var option = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
    decorView.systemUiVisibility = option
    

    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS在4.4状态栏顶部是有一个黑色阴影渐变,无法改变

    1.1.3 全屏

        var option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
                     View.SYSTEM_UI_FLAG_FULLSCREEN 
    

    状态栏导航栏收缩,是真全屏效果,
    点击页面的任何位置或下拉状态栏,状态栏导航栏重新显示,不自动收回

    var option = View.SYSTEM_UI_FLAG_FULLSCREEN or
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
                View.SYSTEM_UI_FLAG_IMMERSIVE
    

    只有下拉状态栏,状态栏导航栏重新显示,不自动收回,状态栏是主题颜色,导航栏黑色

    var option = View.SYSTEM_UI_FLAG_FULLSCREEN or
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
                View.SYSTEM_UI_FLAG_IMMERSIVE
    

    只有下拉状态栏,状态栏导航栏重新显示,不自动收回,状态栏是主题颜色,导航栏黑色

    var option = View.SYSTEM_UI_FLAG_FULLSCREEN or
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
    

    只有下拉状态栏,状态栏导航栏重新显示,自动收回,状态栏导航栏透明且有黑色阴影

    1.2 5.0

    1.2.1 设置状态栏颜色
     var decorView = window.decorView
     var option = WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
     window.statusBarColor = Color.RED
     decorView.systemUiVisibility = option
    

    WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS是5.0新加的api

    1.2.2 图片伸入状态栏
     var decorView = window.decorView
    var option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
                    View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    window.statusBarColor = Color.TRANSPARENT
    window.navigationBarColor = Color.TRANSPARENT
    decorView.systemUiVisibility = option
    

    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN,View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION不会让状态栏导航栏隐藏,顶部view会你伸入状态栏,底部view,会伸入导航栏,这时状态栏是主题色,导航栏是黑色,只有window.statusBarColor = Color.TRANSPARENT,window.navigationBarColor = Color.TRANSPARENT时,才能显示顶部底部被遮挡的部分

    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN,View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION不会让状态栏导航栏隐藏,只有View.SYSTEM_UI_FLAG_FULLSCREEN,View.SYSTEM_UI_FLAG_HIDE_NAVIGATION才会让状态栏导航栏隐藏,但还是会让用户下拉出状态栏,上拉出导航栏

    1.3 6.0

    View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 可以设置状态栏字色和图标浅黑色。

    相关文章

      网友评论

          本文标题:Android沉浸式状态栏总结

          本文链接:https://www.haomeiwen.com/subject/lwfyqhtx.html