微信小程序--TabBar不出现的一种原因

  学习微信小程序中,遇到底部的TabBar不出现的问题。经过多番尝试,终于解决问题。在此记录问题产生的原因和对策。下面先描述错误现象,接着指出错误原因,最后提供正确的实例。
  错误现象是,项目的app.json使用以下代码,却没有如期望那样在屏幕底部出现TabBar。

{
  "pages":[
    "pages/clickDemo/clickDemo",
    "pages/logs/logs",
    "pages/index/index",
    "pages/mypage/mypage"
  ],
  "window": {
    "backgroundTextStyle": "dark ",
    "navigationBarBackgroundColor": "#ddd",
    "navigationBarTitleText": "Tabbar Demo",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#ff0000"
  },
  "tabBar": {
    "color": "#000000",
    "borderStyle": "#000",
    "selectedColor": "#9999FF",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "image/location_normal.png",
        "selectedIconPath": "image/location_selected.png"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "设置",
        "iconPath": "image/setting_normal.png",
        "selectedIconPath": "image/setting_selecred.png"
      }
    ]
  }
}

底部没有出现TabBar,如图1所示。
这里写图片描述
图1 左侧的屏幕效果图中,底部没有TabBar

  为什么底部不出现TabBar?原因在于,app.json头部的pages数组的第一项"pages/clickDemo/clickDemo"没有成为tabBar的一员,也就是在tabBar的list数组内没有链接clickDemo页面的条目。
  具体对策有两种。一,我们在list数组内加入链接clickDemo页面的条目,如图2所示。图2中的红色矩形框内的代码是新加的,下面给出了这段代码。二,把pages数组的第一项设置为"pages/index/index",或者设置为"pages/logs/logs"。也就是说,pages数组的第一项必须是tabBar的list数组的一员。
  
这里写图片描述
图2 解决底部不出现TabBar的对策

  对策一在app.json内添加的代码如下。注意,tabBar的list数组的条目之间要用逗号分隔。

      {
        "pagePath": "pages/clickDemo/clickDemo",
        "text": "事件Demo",
        "iconPath": "image/setting_normal.png",
        "selectedIconPath": "image/setting_selecred.png"
      }

  题外话,微信小程序的开发工具需要大大大提升,包括它的使用手册。本文提及的问题是一个隐晦的约定。开发人员违反约定的话,开发工具应该快速指出来,甚至给出改进措施。否则,会浪费开发人员大量时间,破坏他/她们的情绪,最后可能形成“开发微信小程序真费劲”的结论。祝愿微信小程序开发工具越来越好用。
  

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
微信小程序一种基于微信平台开发的应用程序,可以在微信内直接运行。它提供了一种方便快捷的方式来开发和分享小程序。在微信小程序中,我们可以使用tabbar来实现底部导航栏,方便用户进行页面切换。 为了实现动态修改tabbar,我们可以使用微信小程序的API进行操作。首先,我们需要在小程序的app.json文件中定义tabBar的结构和样式。在定义中,我们可以设置每个tab的页面路径、图标和标题等属性。 当我们需要动态修改tabbar时,可以通过调用微信小程序的API wx.setTabBarStyle() 来修改tabbar的样式,包括背景颜色、选中状态的颜色等。 同时,我们可以通过调用wx.setTabBarItem()来修改单个tab的图标和标题等属性。 在业务逻辑中,我们可以监听用户的事件触发,并根据需要来修改tabbar的样式。比如,当用户点击某个按钮时,我们就可以调用以上API来动态修改tabbar。 需要注意的是,修改tabbar的样式是全局生效的,这意味着无论在哪个页面调用API进行修改,都会对所有页面生效。因此,在使用时需要考虑全局的一致性和用户体验。 总之,通过使用微信小程序提供的API,我们可以实现动态修改tabbar的样式,为用户提供更好的交互体验。这为小程序的开发者提供了更多的灵活性和自定义性,方便我们根据具体的业务需求来进行界面的设计和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值