微信小程序导航栏状态栏可修改项
![](https://img.haomeiwen.com/i1722765/8535ab8c4002dec3.png)
在微信小程序中,能修改状态栏和导航栏的样式,只能修改背景色、文字颜色(只支持白色/黑色)、和标题文字。
![](https://img.haomeiwen.com/i1722765/780ad2a5fb653995.png)
navigationStyle 可以控制是否显示导航栏。如果设置为custom,则没有状态栏,且导航栏也为可操作空间,即这时候前端可以控制的区域为整个手机屏幕
![](https://img.haomeiwen.com/i1722765/a9abf4891dc16604.png)
获取微信小程序状态栏高度
获取系统信息方法使用wx.getSystemInfoSync(),该方法的状态栏高度属性statusBarHeight
let res = wx.getSystemInfoSync();
let statusHeight = res.statusBarHeight; // 注意:此时获取到的值的单位为 'px'
![](https://img.haomeiwen.com/i1722765/8ae02b28e7897531.png)
获取微信小程序导航栏高度
wx.getMenuButtonBoundingClientRect(),根据高度及上下位置,结合状态栏高度即可算出导航栏高度
![](https://img.haomeiwen.com/i1722765/8f54e86152b30f33.png)
在大多数情况下得出的导航栏高度都是 40px,个人观察和测试,微信小程序的导航栏在大部分机型上都是 44px
自定义导航栏时
因为不同型号的手机的状态栏高度是不一样的,但是导航栏高度是一样的,状态栏高度使用 wx.getSystemInfoSync().statusBarHeight 获取,注意单位是 px ,导航栏高度设置为 44px 。
因为在微信小程序中,经常使用 rpx 作为单位。
rpx 单位本质上就是一个百分比单位:100%为 750rpx,若想将 px 转为 rpx
let res = wx.getSystemInfoSync();
let buttonInfo = wx.getMenuButtonBoundingClientRect();
let navBarHeight = (buttonInfo.top - res.statusBarHeight) * 2 + buttonInfo.height;
let _navBarHeight = navBarHeight * 750 / wx.getSystemInfoSync().windowWidth;//导航栏高度
this.globalData.navBarHeight = _navBarHeight;
this.globalData.statusBarHeight = res.statusBarHeight * 750 / wx.getSystemInfoSync().windowWidth;//状态栏高度
网友评论