在Android 11中,WindowInsets API发生了一些变化,以更好地支持多窗口场景和系统UI的交互。以下是Android 11中WindowInsets的一些主要变化:
-
WindowInsetsController:
- 在Android 11中,WindowInsetsController被引入为一个新的API,用于更细粒度地控制窗口的Insets(边距)。
- 通过WindowInsetsController,你可以控制系统UI(如状态栏、导航栏等)与应用程序内容之间的边距。
-
WindowInsets调整策略:
- Android 11引入了新的WindowInsets调整策略,允许应用程序更灵活地处理系统UI的边距变化。
- 通过设置
WindowInsetsController.setSystemUiVisibilityListener()
,你可以监听系统UI可见性状态的变化,并根据需要调整窗口的Insets。
-
分区窗口(Partitioned Windows):
- 在Android 11中,引入了分区窗口的概念,允许应用程序在多窗口场景下更好地控制系统UI的边距。
- 分区窗口可以根据屏幕上的其他窗口动态调整其Insets,以提供更一致的用户体验。
-
新的Insets属性:
- Android 11为WindowInsets API引入了一些新的属性,如
systemGestureExclusionRects
、displayFrame
等,以支持更复杂的窗口布局和交互。
- 通过这些新的属性,你可以更好地控制窗口在不同屏幕状态下的显示和行为。
-
对折叠屏设备的支持:
- Android 11的WindowInsets API得到了改进,以更好地支持折叠屏设备。
- 通过使用新的WindowInsets调整策略和分区窗口功能,你可以为折叠屏设备提供更流畅和一致的用户体验。
总之,Android 11中的WindowInsets API为开发者提供了更强大和灵活的工具来处理窗口布局和系统UI交互。这些变化使得应用程序能够更好地适应多窗口场景,并为用户提供更优质的视觉体验。