文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

微信小程序自定义tabBar(实操)

2023-08-20 14:04

关注

一、前言

一般使用tabBar的样式,固定不能改变。如下固定效果图:
在这里插入图片描述

如何自定义自己想要的效果图呢,举个例子。如下自定义效果图:
在这里插入图片描述

二、固定效果图实现步骤

使用微信开发者工具-创建项目我就不说了,官方文档很详细。
参考:官方文档介绍

实现步骤

添加images文件,添加想要的矢量图(可通过阿里巴巴矢量图免费获取)
2、在app.json文件中,编辑代码
3、保存,刷新即可
在这里插入图片描述

完整代码-矢量图

images图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

app.json代码

{  "pages":[    "pages/index/index",    "pages/logs/index",    "pages/commdt/index",    "pages/cart/index",    "pages/mymessage/index"  ],  "window":{    "backgroundTextStyle":"light",    "navigationBarTitleText": "测试tabbar",    "navigationBarTextStyle":"white"  },  "tabBar": {    "color": "#B6B6B6",    "selectedColor": "#FE9132",    "list": [      {        "pagePath":"pages/index/index",        "text": "首页",        "iconPath":"/images/sy2.png",        "selectedIconPath": "/images/sy1.png"      },      {        "pagePath":"pages/commdt/index",        "text": "商品",        "iconPath":"/images/sp2.png",        "selectedIconPath": "/images/sp1.png"      },      {        "pagePath":"pages/cart/index",        "text": "购物车",        "iconPath":"/images/gwc2.png",        "selectedIconPath": "/images/gwc1.png"      },      {        "pagePath":"pages/mymessage/index",        "text": "我的",        "iconPath":"/images/wd2.png",        "selectedIconPath": "/images/wd1.png"      }    ]  },  "style": "v2",  "sitemapLocation": "sitemap.json"}

三、自定义效果图实现步骤

实现步骤

添加images文件,添加想要的矢量图(可通过阿里巴巴矢量图免费获取)
2、在app.json文件中,编辑代码
3、点击加号,在根目录新建一个custom-tab-bar文件夹
4、然后右键该文件夹,点击新建components,输入index,回车,就会自动创建四个文件
此时我们可以看到小程序底部出现,就代表创建成功了。因为他自动识别了tabBar页面。
然后在该目录下编写代码即可
在这里插入图片描述

完整代码-矢量图

images图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

app.json代码

 "window":{    "backgroundTextStyle":"light",    "navigationBarBackgroundColor": "#FFFFFF",    "navigationBarTitleText": "摆烂鸭",    "navigationBarTextStyle":"black"  },  "tabBar":{    "custom": true,    "list":[      {        "pagePath":"pages/index/index",        "text":"摆鸭"      },{        "pagePath":"pages/commdt/index",        "text":"不鸭"      }    ]  },

custom-tab-bar下的代码

index.wxml

<cover-view class="tab-bar">  <!-- <cover-view class="tab-bar-border"></cover-view> -->  <cover-view wx:for="{{list}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">    <cover-image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></cover-image>    <!-- <cover-view class="{{currentName ==  item.name ? 'text-active' : 'tabbar-text'}}">{{item.text}}</cover-view> -->  </cover-view></cover-view>

index.css

.tab-bar {  position: fixed;  bottom: 0;  left: 0;  right: 0;  height: 130rpx;  background: white;  display: flex;  padding-bottom: env(safe-area-inset-bottom);  justify-content: center;}.tab-bar-item {  text-align: center;  display: flex;  flex-direction: column;}.tab-bar-item cover-image {  width: 240rpx;  height: 100rpx;}.tab-bar-item cover-view {  font-size: 10px;}

index.js

Component({    properties: {  },    data: {    selected: 0,    color: "#7A7E83",    selectedColor: "#3cc51f",    list: [{      "pagePath": "/pages/index/index",      "iconPath": "/images/by3.png",      "selectedIconPath": "/images/by1.png",      "text": "摆鸭"    }, {      "pagePath": "/pages/commdt/index",      "iconPath": "/images/by2.png",      "selectedIconPath": "/images/by4.png",      "text": "不鸭"    }]  },    methods: {    switchTab(e) {      console.log("执行跳转", e);      const data = e.currentTarget.dataset      const url = data.path      wx.switchTab({        url      })      this.setData({        selected: data.index      })    }  }})

使用自定义TaBar

使用自定义TabBar,在切换的TabBar界面的onShow中添加如下代码。如首页中设置 selected: 0,我的中设置 selected: 2。因为 selected: 1 是特殊跳转,点击加号图标时,不再是切换tabbar,而是直接跳转发布界面了。
例如:
/pages/index/index 的.js页面添加代码

    onShow() {    if (typeof this.getTabBar === 'function' &&      this.getTabBar()) {      this.getTabBar().setData({        //唯一标识(其它设置不同的整数)          selected: 0      })    }  }, 

/pages/commdt/index 的.js页面添加代码

    onShow() {    if (typeof this.getTabBar === 'function' &&      this.getTabBar()) {      this.getTabBar().setData({        //唯一标识(其它设置不同的整数)          selected: 1      })    }  },

在这里插入图片描述

各位看官》创作不易,点个赞!!!
诸君共勉:万事开头难,只愿肯放弃。

免责声明:本文章仅用于学习参考

来源地址:https://blog.csdn.net/SoulNone/article/details/127933751

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯