android statusbar 隐藏源码分析
时间: 2023-10-18 17:15:49 浏览: 74
Android 状态栏的隐藏分为两种情况:全屏模式和非全屏模式。全屏模式下,状态栏会被完全隐藏,而非全屏模式下,状态栏通常会被隐藏,但是在用户下拉通知栏的时候会重新出现。
在 Android 中,状态栏是由一个系统进程 StatusBarService 来管理的,而我们想要隐藏状态栏,则需要通过调用 StatusBarManager 的 hide() 方法来实现。
在非全屏模式下,当我们想要隐藏状态栏时,我们可以通过设置 WindowManager.LayoutParams.FLAG_FULLSCREEN 标志位来实现。具体代码如下:
```java
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
```
在全屏模式下,我们需要通过设置 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 和 View.SYSTEM_UI_FLAG_LAYOUT_STABLE 标志位来实现,具体代码如下:
```java
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(uiOptions);
```
以上代码中,getWindow().getDecorView() 方法用于获取当前 Activity 的根 View,setSystemUiVisibility() 方法用于设置 View 的 UI 标志位。
总之,隐藏状态栏的实现原理就是通过调用 StatusBarManager 的 hide() 方法,或者设置 View 的 UI 标志位来实现。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)