文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

获取不同机型微信小程序状态栏+导航栏高度

2023-10-01 18:04

关注

一. 前言

很多时候我们开发微信小程序,都需要先知道状态栏和导航栏的高度,才能去做其他功能。

二. 获取微信小程序状态栏高度

wx.getSystemInfoSync()【官方文档】获取系统信息,里面有个参数:statusBarHeight(状态栏高度),是我们后面计算整个导航栏的高度需要用到的。

let res = wx.getSystemInfoSync();let statusHeight = res.statusBarHeight; // 注意:此时获取到的值的单位为 'px'

在这里插入图片描述

三. 获取微信小程序导航栏高度

1)方法一(个人不赞同该方法的)

很多人使用获取胶囊布局信息 ,wx.getMenuButtonBoundingClientRect()根据胶囊高度及上下位置,结合状态栏高度即可算出导航栏高度。
在这里插入图片描述

let res = wx.getSystemInfoSync(); //系统信息let custom = wx.getMenuButtonBoundingClientRect() //胶囊按钮位置信息let navBarHeight = (custom.top - res.statusBarHeight) * 2 + custom.height //计算得出导航栏高度

wx.getMenuButtonBoundingClientRect()文档
获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点
在这里插入图片描述

该方法原理:

把微信小程序的胶囊按钮位于导航栏中间来使用,利用胶囊距离顶部的距离 - 状态栏高度,得出胶囊距离导航栏顶部的距离,认为胶囊距离导航栏底部也是这个距离,所以乘以2;再加上胶囊按钮的高度得出导航栏整体高度

不认可该方法原因:

上面方法可行的前提是胶囊按钮位于导航栏中间,个人认为胶囊按钮并不位于导航栏中间,即胶囊按钮距离导航栏顶部和导航栏底部的高度是不一样的。
上面的方法,在大多数情况下得出的导航栏高度是40px,经测试发现,微信小程序导航栏高度在大部分机型上都是44px,不需要借助 wx.getMenuButtonBoundingClientRect() 该方法计算。

2)方法二(个人项目中用的方法)

计算公式:顶部导航栏总高度 = 状态栏高度 + 44。

let res = wx.getSystemInfoSync()let navBarHeight = res.statusBarHeight + 44 //顶部状态栏+顶部导航,大部分机型默认44pxuni.setStorageSync('statusBarHeight', res.statusBarHeight)  //状态栏高度uni.setStorageSync('navBarHeight', navBarHeight)  //状态栏+导航栏高度

可参考:
证实微信小程序导航栏高度在大部分机型上都是44px案例
简单粗暴的微信小程序全面屏适配(获取导航栏和状态栏高度)
微信小程序自定义navigationBar顶部导航栏,兼容适配所有机型(附完整案例)

来源地址:https://blog.csdn.net/weixin_45811256/article/details/127221187

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯