评论

关于官方提供picker被自定义tabbar遮挡 另类解决方案(ios端)

解决了官方目前安卓苹果不同端picker显示会和自定义tabbar起冲突的问题 这里提供了我自己的一套临时解决方案 希望大家共同讨论,也希望官方能早日修复bug

场景回忆:

修改前 修改后

当你在自己的小程序使用自定义组件的时候却发现苹果端ios的picker会被其遮盖

而安卓端却可以正常使用,你十分头疼却没有想出其他办法

统一一个自定义picker组件吧?要转移的数据太繁杂,过程太麻烦

调试一下tabbar吧,发现频频报错,bug!修一个出现十个

我这里有一套解决方案:

思路:在自己的tabbar添加一个wx:if,当用户点击picker的时候就将tabbar改为false;当用户点击确定的时候将tabbar改为true

自定义tabbar(只展示就不贴代码了大家自己发挥)

在对应的tabbar页面的wxml加上一个wx:if

后面变量加个showBar


在有官方picker组件的页面加一个bindtap,picker能够实现子view的bindtap

点击之后 触发dechange方法:

 dechange()
   {
    this.getTabBar().setData(
      {
        showBar:false
      }
    )
    },


在picker的bindcancel(bindcancel就是用户点击picker的取消的时候触发的事件)的对应方法里

加上

 dcancel()
   {
   console.log("取消了")
   this.getTabBar().setData(
    {
      showBar:true
    }
  )
   },


让变量为true 导航栏回归

在picker的bindchange(bindchange就是用户点击picker的确认的时候触发的事件)的对应方法里

加上

让变量为true 导航栏回归


以上就是解决此问题的答案,虽然有点简陋但是能够小小止火

甲方爸爸看了都喜笑颜开!

编者第一次上传文章,有点仓促如果有问题请指出!

有冲突才会成长!

加油!代码人


最后一次编辑于  2022-11-02  
点赞 5
收藏
评论

1 个评论

  • ouou
    ouou
    2023-04-18

    对对对!被这个问题困扰过!

    2023-04-18
    赞同
    回复
登录 后发表内容