Android 显示、隐藏状态栏和导航栏

这篇具有很好参考价值的文章主要介绍了Android 显示、隐藏状态栏和导航栏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

控制状态栏显示,Activity的主题中配置全屏属性

<item name="android:windowFullscreen">true</item>

控制状态栏显示,在setContentView之前设置全屏的flag

 

复制代码

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

控制状态栏显示,在任何位置通过添加和移除全屏的flag

// 隐藏状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 显示状态栏 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

控制状态栏和导航栏显示,setSystemUiVisibility

View.SYSTEM_UI_FLAG_LAYOUT_STABLE:全屏显示时保证尺寸不变。
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,状态栏显示在Activity页面上面。
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏导航栏
View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。
View.SYSTEM_UI_FLAG_VISIBLE:Activity非全屏显示,显示状态栏和导航栏。
View.INVISIBLE:Activity伸展全屏显示,隐藏状态栏。
View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY:必须配合View.SYSTEM_UI_FLAG_FULLSCREEN和View.SYSTEM_UI_FLAG_HIDE_NAVIGATION组合使用,达到的效果是拉出状态栏和导航栏后显示一会儿消失。

// 全屏展示
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        // 全屏显示,隐藏状态栏和导航栏,拉出状态栏和导航栏显示一会儿后消失。
        activity.getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    } else {
        // 全屏显示,隐藏状态栏
        activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
    }
}

// 非全屏显示,显示状态栏和导航栏
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);

作者:YuanchaoLi
链接:https://juejin.cn/post/6844903807046909966
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

好像不咋管用 推荐看下下面这个

Android 9.0 适配——刘海屏 - 简书文章来源地址https://www.toymoban.com/news/detail-713282.html

到了这里,关于Android 显示、隐藏状态栏和导航栏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android studio中使用ViewPager和BottomNavigationView实现底部导航栏和碎片的同步切换

    通过几次的踩雷和摸索,完成了以上的操作,本教程写的详细全面,包教包会,对新手有好,看了不会的联系我,我倒立洗头给你看。 所需控件: fragment 作为Android中最常用的控件,它有自己的声明周期,可以粗略地等比为能够分屏的activity,但是和activity有区别,fragment有自

    2024年02月08日
    浏览(49)
  • Android13系统导航栏添加隐藏导航栏功能按钮

    最近有个项目,客户要求在底部导航栏中添加一个可以隐藏整个导航栏的功能按钮,效果如下图: 具体方法如下: 1. 在frameworks/base做如下修改: 2. 上面修改中有一行代码android:src=\\\"@drawable/ic_sysbar_hide\\\"引用了一个ic_sysbar_hide.xml文件,该文件内容如下:其实就是那个隐藏按钮的

    2024年04月23日
    浏览(71)
  • QT桌面项目(状态栏和导航栏设置)

    为了和我们这个项目做的更加真实,这里为我们的项目添加上状态栏和导航栏让他变成更加接近手机的桌面效果。 这个状态栏就是显示时间和wifi状态,电池电量的,这里把颜色都设置为白色因为设置为白色后就不会受到壁纸更换的影响了。 那么如何来编写这个状态栏呢?这

    2024年02月06日
    浏览(35)
  • Android状态栏布局隐藏的方法

    2024年01月23日
    浏览(40)
  • uniapp使用自定义导航栏和手机自带的状态栏重叠

    【问题界面】: 【正常界面】: 【解决方法】: 在页面顶部添加代码 !-- #ifndef H5 -- statusBar/statusBar !-- #endif -- 2.引入占位条并注册

    2024年02月15日
    浏览(38)
  • 【Android】获取导航栏、状态栏高度

    或者 或者 系统的各种数据定义位于SDK的xml文件中: android-30/data/res/values/dimens.xml 通过key可以获取对应的值。 导航栏和状态栏源码相似 调用 updateColorViews 更新背景色的方法,还有如下位置: WindowInsets 可以翻译为窗口附加物,一般是指一个界面中,不由开发者直接控制的部分

    2024年02月12日
    浏览(44)
  • flutter设置windows是否显示标题栏和状态栏和全屏显示

    想要让桌面软件实现全屏和不显示状态栏或者自定义状态栏,就可以使用window_manager这个依赖库,使用起来还是非常方便的,可以自定义显示窗口大小和位置,还有设置标题栏是否展示等内容,也可以设置可拖动区域。官方仓库地址:window_manager | Flutter Package github仓库地址:

    2024年01月23日
    浏览(46)
  • 在uniapp中获取微信小程序状态栏和导航栏的高度

    在微信小程序中,可以使用  uni.getSystemInfo()  方法获取设备的系统信息,包括状态栏的高度和顶部导航栏的高度。您可以使用这些信息计算顶部图标距离。 下面是一个示例代码,展示如何在 UniApp 中获取顶部图标距离: 在上述示例代码中,我们通过调用  uni.getSystemInfo()  方

    2024年02月07日
    浏览(47)
  • Android WindowInsetsController 设置状态栏、导航栏

    有 hide() ,也有 show() 在更早的版本中,使用 ViewCompat.getWindowInsetsController() 获取 WindowInsetsControllerCompat 实例 而现在推荐使用 WindowCompat.etInsetsController() 获取 WindowInsetsControllerCompat 实例 底部的三个按键就是导航栏 (navigation bar): back / home / recent 。 高版本系统,recent,可能没有图

    2024年02月15日
    浏览(43)
  • 【vue3】固定上导航栏和左侧导航栏,只显示其他内容在主内容区域

    在一个单独的vue组件文件中只写出上导航栏和左侧导航栏的内容 将你想要展示的页面主内容写到单独的组件中 在index.js写路由,将【想要展示的页面主内容的路由】作为【子路由】写在【只写出上导航栏和左侧导航栏的路由】的下面; 在elment-plus官网上找到自己需要的布局容

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包