3***@qq.com
3***@qq.com
  • 发布:2023-04-03 11:11
  • 更新:2023-04-03 11:11
  • 阅读:482

关于多端小程序各部分(状态栏/标题栏/导航栏/安全条)尺寸计算的方法

分类:uni-app

当小程序用于多端的时候,对于某些设计,可能需要对各部分的尺寸进行精确计算。
下面就讨论一下这方面的计算方法。

可以直接获取的参数(各家小程序都支持的)
statusBarHeight

部分小程序支持或支持不好的参数
titleBarHeight(支付宝小程序)
navigationBarHeight(百度小程序)
getMenuButtonBoundingClientRect(各家小程序都支持,但是部分小程序存在有时候获取不到的问题,所以可以加一个延时获取的方法)
safeArea/safeAreaInsets 安全区数据(QQ小程序没有)

另外,已知支付宝小程序和头条小程序不支持完全自定义导航栏

下面开始计算
statusBarHeight已知,不需计算
tabBar因为可以完全自定义,这里就不参与计算了。

safeAreasafeBottom
这个可以直接获取,一般的小程序都是safeAreaInsets.bottom
支付宝小程序参数有时候是safeArea.bottom有时候是safeAreaInsets.bottom
另外,QQ小程序没有,用0即可。

关于titleBarHeight

支付宝直接获取,百度可以用navigationBarHeight-statusBarHeight
QQ/微信可以用胶囊位置搭配statusBarHeight获取,具体计算方法是:
胶囊高度+2*(胶囊顶部-statusBarHeight)
这种方法在自定义导航栏模式( "navigationStyle": "custom",)下可行。
但头条小程序不支持完整的自定义导航,暂时没找到方法精确计算标题栏高度,只能根据胶囊位置算一个大概值。
如果哪位大神知道可以计算的方法,望告知。

页面内容区域
QQ/微信 因为全部可以自定义,所以是整个screenHeight
支付宝可以用screenHeight-statusBarHeight-statusBarHeight
其他的类似,但是头条的因为titleBarHeight算不出来,也没有具体给定,暂时没法计算。

0 关注 分享

要回复文章请先登录注册