uniapp tabbar添加图标
时间: 2025-05-16 16:47:10 浏览: 16
### 实现 UniApp 中带有自定义图标的 TabBar
在 UniApp 开发框架中,可以通过 `manifest.json` 文件中的全局配置来设置底部的原生 tabbar 图标[^3]。具体来说,在 `manifest.json` 的 `pages` 配置项下可以找到关于 tabBar 的部分。通过指定每个 tab 对应的图标路径即可完成自定义。
以下是详细的实现方式:
#### 1. 修改 manifest.json 配置
进入项目的根目录下的 `manifest.json` 文件,定位到 `tabBar.list` 属性。在此属性中,为每一个 tab 定义其对应的选中和未选中状态的图标路径。例如:
```json
{
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "static/icons/home.png", // 未选中时的图标
"selectedIconPath": "static/icons/home-active.png" // 选中时的图标
},
{
"pagePath": "pages/cart/cart",
"text": "购物车",
"iconPath": "static/icons/cart.png",
"selectedIconPath": "static/icons/cart-active.png"
}
]
}
}
```
上述代码展示了如何为两个不同的页面分别设定它们的默认图标和激活后的图标。
#### 2. 动态修改 TabBar 图标
如果需要运行时动态调整 tabbar 图标,则可通过调用小程序 API 来实现。比如使用 `setTabBarItem` 方法更新某个特定索引位置上的图标资源地址[^1]。下面是一个简单的例子展示如何操作:
```javascript
// 假设当前是在 pages/somePage/main.js 或者其他逻辑处理脚本里
export default {
methods: {
changeTabIcons() {
const newSelectedIconPath = 'new_selected_icon_path'; // 替换为你实际的新图片路径
wx.setTabBarItem({
index: 0, // 设置第一个标签页
iconPath: '', // 如果不需要改变非活动状态下的图标可留空字符串或者保持不变
selectedIconPath: newSelectedIconPath,
success(res) {
console.log('成功更换第一页的已选中图标', res);
},
fail(err){
console.error('失败:', err);
}
});
}
},
onShow(){
this.changeTabIcons();
}
};
```
此段 JavaScript 函数演示了当页面加载完成后自动触发一次更改首个选项卡所使用的高亮显示图像的过程[^2]。
#### 3. 使用 Vuex 统一管理 TabBar 数据 (可选)
对于更复杂的项目结构而言,推荐采用 VueX 库来进行集中式的存储管理和分发机制[^4]。这样做的好处是可以让整个应用内的各个模块共享同一份最新的状态副本而无需担心同步问题;同时也方便后续扩展功能需求如增加通知数提示等功能点等。
注意:以上提到的方法均适用于 HBuilder X 创建的标准 uni-app 工程环境之下执行测试验证有效性。
---
阅读全文
相关推荐


















