微信小程序的自定义tabBar如何使用和跳转页面,举个例子
时间: 2024-02-18 07:59:28 浏览: 222
微信小程序的自定义TabBar可以通过在app.json中配置tabBar选项来实现。具体做法是:
1. 在app.json中配置tabBar选项,包括tabBar的颜色、背景色、选中项索引等信息。例如:
```
{
"tabBar": {
"color": "#999999",
"selectedColor": "#FF0000",
"backgroundColor": "#FFFFFF",
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "images/tabbar/home.png",
"selectedIconPath": "images/tabbar/home-active.png"
},
{
"pagePath": "pages/list/list",
"text": "列表",
"iconPath": "images/tabbar/list.png",
"selectedIconPath": "images/tabbar/list-active.png"
},
{
"pagePath": "pages/profile/profile",
"text": "个人",
"iconPath": "images/tabbar/profile.png",
"selectedIconPath": "images/tabbar/profile-active.png"
}
],
"borderStyle": "white"
}
}
```
2. 在每个页面的json文件中设置navigationBarTitleText,用于显示每个页面的标题。例如:
```
{
"navigationBarTitleText": "首页"
}
```
3. 在每个页面的wxml文件中,使用自定义TabBar组件来显示底部导航栏。例如:
```
<custom-tab-bar selected="{{selected}}" list="{{list}}" bind:change="tabBarChange"></custom-tab-bar>
```
其中,selected是当前选中的TabBar项的索引,list是TabBar的配置信息,bind:change是TabBar项切换时的回调函数。
4. 在自定义TabBar组件中,使用wx.switchTab函数来切换页面。例如:
```
Page({
data: {
selected: 0,
list: [
{
"pagePath": "/pages/index/index",
"text": "首页",
"iconPath": "/images/tabbar/home.png",
"selectedIconPath": "/images/tabbar/home-active.png"
},
{
"pagePath": "/pages/list/list",
"text": "列表",
"iconPath": "/images/tabbar/list.png",
"selectedIconPath": "/images/tabbar/list-active.png"
},
{
"pagePath": "/pages/profile/profile",
"text": "个人",
"iconPath": "/images/tabbar/profile.png",
"selectedIconPath": "/images/tabbar/profile-active.png"
}
]
},
methods: {
tabBarChange: function(e) {
var index = e.detail.index;
var pagePath = this.data.list[index].pagePath;
wx.switchTab({
url: pagePath,
})
}
}
})
```
在这个示例中,我们在Page中定义了selected和list两个变量,分别用于存储当前选中的TabBar项的索引和TabBar的配置信息。在tabBarChange回调函数中,我们通过e.detail.index获取用户选中的TabBar项的索引,然后根据索引获取对应的页面路径,并通过wx.switchTab函数来切换页面。
需要注意的是,wx.switchTab函数只能用于切换TabBar页面,不能用于切换非TabBar页面。如果需要在非TabBar页面中跳转到其他页面,可以使用wx.navigateTo或wx.redirectTo函数来实现。
阅读全文