zoukankan      html  css  js  c++  java
  • 微信小程序自定义tabBar机型适配,不用写脚本

    微信小程序可以通过在app.json文件中定义官方的tabBar,但是实际项目中往往会遇到一些业务需求官方的tabBar无法做到。比如说底部的tabBar个数是根据不同角色来显示,这个时候我们需要自定义tabBar。在自定义tabBar的时候了会遇到不同机型底部适配问题(比如iphoneX,Iphone 11Pro ,一些齐刘海机型底部安全区域问题),一开始我想到的是用脚本判断设备机型,通过是不是齐刘海来给底部tabBar预留64rpx的距离。

    wx.getSystemInfo({
          success: res => {
            let { screenWidth, screenHeight } = res
            console.log("设备信息:",res)
            // iphoneX 、11、Xr、 Max等设备分辨率
            let _screen = [
              {w: 375, h: 812 },
              {w: 414, h: 896 }
            ]
            that.globalData.isIphoneX  = _screen.some(item => item.w === screenWidth && item.h === screenHeight)
            console.log("isIphoneX设备:", that.globalData.isIphoneX )
          }
        })

    刚好最近一个小程序项目上线了,恰巧又碰到iphone 12新手机上市,客户那边反应iphone 12 Pro上底部tabBar显示有遮挡。不用想我就知道肯定是新产品iphone12,iphone 12 pro的设备分辨率不在对比的数据列表内,所以我就在想如果后面又有新的机型出现怎么办?所以上面的代码通用性不是很强。就在网上百度查看到可以通过css直接设置安全区域底部来解决,只需在包裹tabBar的元素(class:tabbar_wrapper)上加一行代码解决即可。

    .tabbar_wrapper{
       padding-bottom:calc(100rpx + env(safe-area-inset-bottom))  
    }

    env(safe-area-inset-bottom) 参考链接:https://blog.csdn.net/sd19871122/article/details/80989704

  • 相关阅读:
    【五一qbxt】day7-1 引水入城
    【五一qbxt】day6 OI中的stl
    【五一qbxt】test2
    ASCII码
    深入浅出Redis04使用Redis数据库(lists类型)
    深入浅出Redis03 使用Redis数据库(hashes类型)
    深入浅出Redis01安装
    FireFox & Chrome 使用技巧
    Android学习笔记03-搭建Win8下的Android开发环境
    java + jquery + ajax + json 交互
  • 原文地址:https://www.cnblogs.com/junechen/p/14142338.html
Copyright © 2011-2022 走看看