onSystemBarAppearanceChanged 详解
时间: 2023-07-19 13:56:59 浏览: 69
`onSystemBarAppearanceChanged`方法属于`WindowInsetsController.OnControllableInsetsChangedListener`接口,用于监听系统窗口的可控制区域(例如状态栏和导航栏)的外观变化。当系统状态栏和导航栏的外观发生变化时,该方法将被调用。
该方法的定义如下:
```
public void onSystemBarAppearanceChanged(int mask, int appearance)
```
其中,`mask`参数是一个标志位,表示哪些外观属性发生了变化,`appearance`参数表示变化后的外观属性值。
`mask`参数的取值包括以下常量:
- `APPEARANCE_LIGHT_STATUS_BARS`:状态栏的亮度风格(例如黑色或白色)发生了变化。
- `APPEARANCE_LIGHT_NAVIGATION_BARS`:导航栏的亮度风格(例如黑色或白色)发生了变化。
- `APPEARANCE_LOW_PROFILE_BARS`:状态栏和导航栏的可见性(例如隐藏或显示)发生了变化。
`appearance`参数的取值包括以下常量:
- `APPEARANCE_OPAQUE_STATUS_BARS`:状态栏不透明。
- `APPEARANCE_SEMI_TRANSPARENT_STATUS_BARS`:状态栏半透明。
- `APPEARANCE_TRANSPARENT_STATUS_BARS`:状态栏透明。
- `APPEARANCE_OPAQUE_NAVIGATION_BARS`:导航栏不透明。
- `APPEARANCE_SEMI_TRANSPARENT_NAVIGATION_BARS`:导航栏半透明。
- `APPEARANCE_TRANSPARENT_NAVIGATION_BARS`:导航栏透明。
应用程序可以通过重写`onSystemBarAppearanceChanged`方法来适应状态栏和导航栏的新外观,例如更改颜色或图标。