[小程序]高适应性的自定义导航栏开发思路

1,433 阅读1分钟

非自定义导航栏高度怎么计算?

  1. wx.getSystemInfo 和 wx.getSystemInfoSync 获取机器信息
  2. screenHeight - windowHeight 计算标题栏高度
  3. 标题栏高度
  • 'iPhone': 64,
  • 'iPhone X': 88,
  • 'android': 68

—— 不完全统计(ip6 , ip5 , ip6p , ipx , 小米mix2 , 小米5等综合了开发工具提供的数据和真机数据)所得

自定义导航栏高度由谁决定?

  1. 开发时发现,自定义导航栏的实现需要 包含状态栏+胶囊 :没有自定义导航栏的时候页面是全屏幕滚动会出现在状态栏的下一层
  2. 根据上一标题中步骤1的函数,可以获得状态栏高度 statusBarHeight
  3. demo地址wechatide://minicode/7rCGPjmQ75PM,点击自动打开开发工具

小程序自定义导航栏开发注意点与参考文档

  • 微信官方设计指导中关于胶囊按钮的描述 由此推测胶囊宽度87pt=116px,设置之后,的确能产生较好的兼容性效果
  • [2018-07-06]根据测试截图发现微信胶囊宽度应该在96px左右,还有待研究
  • 社区相关Q&A:自定义标题栏高度计算
  • 使用时注意方法与属性版本兼容性
  • 完善之路:
    1. 开一个项目采集设备的screenHeight,windowHeight,pixelRatio等信息到一个数据库中
    2. 微信提供这样一个数据库便于计算,或者微信优化自定义标题栏(譬如通知栏可以改变颜色但不要算在自定义范围内,给出胶囊宽高到通知栏距离到右侧屏幕边框距离等相关参数)