1. 前言
是的,Jetpack 又添加新成员了,那就是WindowManager
,它是干什么用的呢?本文就带你一起了解一下。
WindowManager
是Android Jetpack的最新功能,旨在帮助APP开发人员支持新的设备尺寸,并为新旧平台版本上的各种Window Manager功能提供通用的API交互。现在,最初的版本面向可折叠设备,将来的版本将扩展为支持更多的显示类型和窗口功能。
2. 为什么我们需要它?
现在,市场上新出了一些可折叠屏设备,它们提供了一组独特的硬件功能。针对这些新设备和外形来优化你的APP,能给用户带来与众不同的体验,并且让用户能充分利用他们所使用的设备。
例如,三星Galaxy Z Flip
是翻盖式设备,支持折叠和部分折叠状态(三星称为Flex模式)。当设备处于部分折叠状态时,该应用可以优化其布局,并将底部的控件与顶部的其余内容分开。如相机或者图库可能会如下适配:
![]() |
![]() |
![]() |
用户可以将手机放在平坦的地方(例如在桌子上),然后使用屏幕的下半部分导航和与应用交互。
Jetpack WindowManager 库的目标就是,为市面所有类型的可折叠设备提供单一的上层API,以便开发者可以这对不同类型的类型的设备进行适配,而不是为每一个设备模型都单独适配。
在1.0.0版中,该库提供了有关可折叠设备的两个物理属性的信息-显示特征
和设备状态
。
DisplayFeature
: 这个API可以识别屏幕的表面是否连续,比如铰链或者折叠。DeviceState
: 这个API通过定义的状态列表来(例如CLOSED
,OPENED
,HALF_OPENED
等)提供手机的当前状态。
3. 显示特征
单个显示面板或多个显示配置可能具有不同的特征,这些特征会在连续的屏幕表面产生干扰,比如折叠
,铰链
,弯曲区域
或<