小程序开发过程中,官方自带导航栏可以适配所有手机机型,但不是所有的页面都需要官方导航栏,所有我们就需要自定义导航栏,但是自定义的导航栏需要适配大部分的机型,
所以就找个示例来适配所有的机型,包括刘海屏;
1、在这我们用到官方给出的api:wx.getSystemInfoSync().statusBarHeight 获取到当前设备的信息的状态栏的高度,
2、再次 wx.getMenuButtonBoundingClientRect() 获取到菜单按钮(右上角胶囊按钮)的布局位置信息;
我们可以在app.js的 onLaunch 中做个全局样式;
var systemHeight = wx.getSystemInfoSync().statusBarHeight var data = wx.getMenuButtonBoundingClientRect(); this.gloableData.systemHeight = systemHeight; this.gloableData.height = (data.top - systemHeight) * 2 + data.height;
然后在 globalData 中 创建这两个值;
gloableData: { height: "", systemHeight: "", },
当我们去使用的时,我可以在 .js 中进行引用,
const app = getApp(); Page({ data:{ height: app.gloableData.height, systemHeight: app.gloableData.systemHeight, })
在 .wxml 中引入这两个值
<view style="height:{{systemHeight}}px" class="box1"></view> <view style="height:{{height}}px" class="box"></view>
样式我们可以在app.wxss
.box{ 100%; background: red; } .box1{ 100%; background: blue; }