收藏
回答

自定义tabbar会出现两个tabbar,怎么解决?

如图,底部tabbar出现了两个,以下截图是在真机上面的效果,在开发工具里面不会出现两个底部导航栏。

目前尝试过的解决方案:必须要加到对应的界面才能隐藏底部的tabbar,不知道还有其他的方案没呢?

在onLaunch里面放置,无法生效。


onReady:function(){

wx.hideTabBar({

fail: function () {

setTimeout(function () { 

wx.hideTabBar()

}, 500)

}

}) ;

},




用的是官方api:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html?search-key=%E8%87%AA%E5%AE%9A%E4%B9%89tabbar

目前用的版本库 2.10.1,手机微信版本号:7.0.15 ,用高于这个的版本库,会报以下错误:


这个项目实现思路:这篇里面记录了具体的东西。

https://developers.weixin.qq.com/community/develop/article/doc/0004ae44048af028877ac58ce51413



类似这个问题:https://developers.weixin.qq.com/community/develop/doc/00002614f4c9905b5a2a3cd1951800?highLine=%257B%2522errMsg%2522%253A%2522hideTabBar%253Afail%2520custom%2520Tabbar%2522%257D




代码片段

https://developers.weixin.qq.com/s/GvtYLkm57ngL


最后一次编辑于  2020-06-08
回答关注问题邀请回答
收藏

6 个回答

  • 林湖
    林湖
    2023-11-30

    经测试,出现两层的原因是调用了 wx.showTabBar()。

    使用官方 demo(https://developers.weixin.qq.com/s/ouJiKgm67cHk),在 index2.js show 里面添加 wx.showTabBar() 即可复现。

    可能微信对于 custom 的实现是内部调用了 wx.hideTabBar() 方法,所以可以通过此 api 再显示出来。

    微信的开发应该认为:既然使用 custom 那必然不会再去调用这些 api,都会自己控制 tab 的展示。

    如果是一个全新的项目,当然调用后立马会发现问题所在。但是对于一个旧项目,根本不知道这个 api 还能生效,只能靠猜。

    2023-11-30
    有用 1
    回复
  • 你是人间四月天
    你是人间四月天
    2022-07-25

    更新一下,今天在官方看到了官方团队已经介入解决这个问题中了,很不错.

    请参考官方地址:https://developers.weixin.qq.com/community/develop/doc/000c84de0cc590bbe54b97edf5e414?_at=1658732979928


    2022-07-25
    有用
    回复
  • 霖宏
    霖宏
    2022-05-04

    20220504 这个问题还存在 笑不活

    2022-05-04
    有用
    回复 1
    • 你是人间四月天
      你是人间四月天
      2022-05-05
      你放心,这个问题会继续存在的。
      2022-05-05
      回复
  • 牧云
    牧云
    2022-04-28

    你们都解决了吗?

    2022-04-28
    有用
    回复 1
    • 你是人间四月天
      你是人间四月天
      2022-04-29
      没有,后面采用了动态更换底部菜单栏图标和文字的方案。放弃掉了这个自定义底部tabbar的方案。我想说句,uniapp对自定义底部组件,或者头部组件支持会更友好些,后面的项目建议用它来开发吧。
      2022-04-29
      回复
  • 灵芝
    灵芝
    2020-06-08

    你好,使用提供的代码片段测试未复现问题,具体是什么机型?请扫描下图提供截图看下

    2020-06-08
    有用
    回复 3
    • 你是人间四月天
      你是人间四月天
      2020-06-08
      2020-06-08
      回复
    • 你是人间四月天
      你是人间四月天
      2020-06-08回复你是人间四月天
      有没有什么方案,在使用自定义tabbar的时候,让默认的tabbar直接失效就行了。既然都自定义了,为何还会让它出来呢?
      2020-06-08
      回复
    • 灵芝
      灵芝
      2020-06-09回复你是人间四月天
      是使用上面提供的代码片段复现的问题么?这边测试没有复现的
      2020-06-09
      回复
  • 龙
    2020-06-08

    是不是app.json里面也配置了tabbar,另外微信7.0.13好像是有这种情况;你可以看下这个帖子:自定义TabBar会出现两个,是bug吗?? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/0002e8d61889c0f0ee1a2393e56800

    2020-06-08
    有用
    回复 8
    • 你是人间四月天
      你是人间四月天
      2020-06-08
      按照官方给的api说明,需要在app.json里面配置tabbar,不然自定义的tabbar无法识别。
      2020-06-08
      回复
    • 你是人间四月天
      你是人间四月天
      2020-06-08
      VM5796:1 appJSON["tabBar"]["list"] 字段需为 array,list 不能去掉,不能为空
      2020-06-08
      回复
    • 你是人间四月天
      你是人间四月天
      2020-06-08
      看了那个帖子是3月8号的,这里都6月8号了,感觉还是有这个问题。
      2020-06-08
      回复
    • 阿珍你来真的
      阿珍你来真的
      2020-07-09回复你是人间四月天
      有解决方法吗
      2020-07-09
      回复
    • 你是人间四月天
      你是人间四月天
      2020-07-09回复阿珍你来真的
      目前采用自定义组件,自己写个底部菜单栏实现改功能。缺点是:每次切换底部菜单栏会重新加载一次,也就是会闪一下。如果非要自定义,这个是目前比较靠谱的方案。上面文档api提供的始终有底部菜单栏重叠问题。
      2020-07-09
      回复
    查看更多(3)
登录 后发表内容
问题标签