【知识总结】显示/隐藏状态栏和导航栏

前言


最近在简化项目的初始化页面,涉及支持全面屏型号的机型,需要隐藏和显示状态栏和导航栏。之前一直忽略这部分知识点,这次补齐了一些。以下是我的知识点总结,不足之处 ,还请原谅并给予帮助,谢谢~


正文


  1. View.SYSTEM_UI_FLAG_LAYOUT_STABLE 固定window位置,不刷新页面
  2. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 隐藏导航栏
  3. View.SYSTEM_UI_FLAG_FULLSCREEN 隐藏状态栏
  4. View.SYSTEM_UI_FLAG_VISIBLE 显示导航栏和状态栏
  5. View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR 和 setNavigationBarColor(Color.TRANSPARENT) 设置状态栏透明
  6. View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 和 setStatusBarColor(Color.TRANSPARENT) 设置导航栏透明
  7. View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 彻底隐藏,不会因为屏幕的点击事件重新显示bar



后记


为了方便日后查看,github上传了demo,欢迎fork并star,谢谢~

`View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR`是一个View的系统UI标志,它可以用来改变Android设备的导航栏(虚拟按键栏)的颜色。 在Android 8.0及以上版本中,如果您想将虚拟按键栏的颜色更改为浅色(例如,从黑色变为白色),则可以使用该标志。 以下是如何使用`View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR`的步骤: 1. 在您的布局文件中,找到您想要更改虚拟按键栏颜色的视图(例如,一个Button或一个LinearLayout)。 2. 在Java代码中,获取该视图的引用,例如: ``` Button myButton = findViewById(R.id.my_button); ``` 3. 使用以下代码将`View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR`标志添加到该视图中: ``` if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { myButton.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); } ``` 注意,由于该标志只适用于Android 8.0及更高版本,在设置该标志之前,您需要检查设备的Android版本是否符合要求。 4. 如果您想要在应用程序的整个界面中使用该标志,您可以将其添加到Activity中的根视图中,例如: ``` if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); } ``` 这将在整个Activity中更改虚拟按键栏的颜色。 请注意,由于这个标志只适用于Android 8.0及以上版本,您需要在使用它之前检查设备的Android版本。另外,该标志只适用于具有虚拟按键的设备,例如Nexus和Pixel设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值