如图,这是我通过开发者工具(选择iphone 12/13 mini)以及真机调试时(iphoneSE2)打印出来的 wx.getWindowInfo() 结果。(通过日志可以分清各种情况,”no tabbar"表示没有开启底部的tabber组件,"with tabber”表示使能了底部的tabbar组件。
咱就想问问,这些个值都有什么关系啊,能给我画个图吗?我怎么算都对不上啊。
状态栏,导航栏,安全区域,底部tabbar,底部手势区域(iphoneX及以上机型)这些区域是怎样的包含关系啊?
我得出的大致规律是:
- 从上到下各区域名称:状态栏(显示时间,电量的区域,刘海屏会增大状态栏高度),导航栏(显示页面名称,返回按钮等,44px/48px),工作区(完全由开发者自定义的区域),tabbar区域(如果有的话),手势区域(iPhoneX及以上机型有);
- wx.getWindowInfo().safeArea:导航栏顶部 --> tabbar底部;即包括了导航栏,工作区,tabbar区域。(不包括状态栏,手势区域)。
- wx.getWindowInfo().screen: 包括了从状态栏到手势区域的全部高度。(但是有例外,看右上角的图,screenTop=82,完全无法解释。。。);
- wx.getWindowInfo().window: 没有加tabbar时,包括了整个屏幕;加了tabbar,表示tabbar以上区域(但是右上角的图又是个例外。。。);
求大佬解答一下我的疑问,我感觉这些对适配不同的屏幕很重要啊。
谢谢!