一、什么是WindowInsets?
WindowInsets源码解释为Window Content的一系列插值集合,可以理解为可以将其理解为不同的窗口装饰区域类型,比如一个Activity相对于手机屏幕需要空出的地方以腾给StatusBar、Ime、NavigationBar等系统窗口,具体表现为该区域需要的上下左右的宽高。
WindowInsets包括三类:SystemWindowInsets、StableInsets、WIndowDecorInsets
- SystemWindowInsets:全窗口下,被navigationbar、statusbar、ime或其他系统窗口覆盖的区域
- StableInsets:全窗口下,被系统UI覆盖的区域
- WIndowDecorInsets:系统预留属性
二、InsetsState
2.1 InsetsState简单介绍
1、保存系统中所有的Insets的状态,他是状态描述者,持有系统中可以产生Window Insets的window状态,它主要持有以下几种类型的Insets:
frameworks/base/core/java/android/view/InsetsState.java
pu