onSystemBarAppearanceChanged 详细讲解一下
时间: 2023-10-10 18:13:05 浏览: 45
`onSystemBarAppearanceChanged` 是 Android 系统中的一个回调方法,用于监听系统状态栏和导航栏的可见性和样式变化。
该方法在 API level 30 (Android 11) 中引入,可以被实现了 `WindowInsetsAnimation.Callback` 接口的类重写。
当系统状态栏或导航栏可见性或样式发生变化时,系统会调用该方法。开发者可以在该方法中实现自定义逻辑,比如改变布局、展示或隐藏 UI 控件等。
该方法的方法签名如下:
```java
void onSystemBarAppearanceChanged(int appearance, @NonNull WindowInsets insets, @NonNull WindowInsetsAnimation animation);
```
其中参数含义如下:
- `appearance`:系统栏外观的标志位,其值可以是 `APPEARANCE_LIGHT_STATUS_BARS`、`APPEARANCE_LIGHT_NAVIGATION_BARS` 或 `APPEARANCE_OPAQUE_STATUS_BARS`。
- `insets`:当前窗口插入的 WindowInsets 对象。
- `animation`:当前正在进行的 WindowInsetsAnimation 对象。
需要注意的是,该方法只有在以下情况下才会被调用:
- 当系统栏的可见性发生变化时,比如状态栏或导航栏由不可见变为可见,或者由可见变为不可见。
- 当系统栏的样式发生变化时,比如状态栏或导航栏的前景、背景或图标颜色发生变化。
希望我的解答对你有所帮助。