Fork me on GitHub

uniapp底部栏设置未读红点或角标

uniapp底部栏设置未读红点或角标

image-20240129152026131

pages.json

{
... // 省略
"tabBar": {
"color": "#333333",
"selectedColor": "#3296fa",
"backgroundColor": "#ffffff",
"borderStyle": "white",
"list": [
{
"pagePath": "pages/sys/workbench/index",
"iconPath": "static/images/tabbar/apply_1.png",
"selectedIconPath": "static/images/tabbar/apply_2.png",
"text": "首页"
},
{
"pagePath": "pages/sys/msg/index",
"iconPath": "static/images/tabbar/msg_1.png",
"selectedIconPath": "static/images/tabbar/msg_2.png",
"text": "消息"
},
{
"pagePath": "pages/sys/user/index",
"iconPath": "static/images/tabbar/my_1.png",
"selectedIconPath": "static/images/tabbar/my_2.png",
"text": "我的"
}
]
}, // 底部按钮栏配置
}

workbench/index.vue(路径自定义,看具体业务)

onShow() {
this.getMessageInfo();
}
getMessageInfo() {
this.$u.api.message.noticeAll().then((res) => {
let count =
res.data.earlyNum +
res.data.newsNum +
res.data.noticeNum +
res.data.taskNum;
if (count > 0) {
uni.setTabBarBadge({
index: 0,
text: "11",
});
uni.setTabBarBadge({
index: 1,
text: "99+",
});
} else {
uni.removeTabBarBadge({
index: 1,
text: "",
});
}
});
},

API

uni.setTabBarBadge(OBJECT)

为 tabBar 某一项的右上角添加文本。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
text String 显示的文本,不超过 3 个半角字符
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

uni.removeTabBarBadge(OBJECT)

移除 tabBar 某一项右上角的文本。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

uni.showTabBarRedDot(OBJECT)

显示 tabBar 某一项的右上角的红点。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

uni.hideTabBarRedDot(OBJECT)

隐藏 tabBar 某一项的右上角的红点。

OBJECT参数说明:

参数 类型 必填 说明
index Number tabBar的哪一项,从左边算起
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

uni.onTabBarMidButtonTap(CALLBACK)

监听中间按钮的点击事件

Tip

  • tabbar是原生的,层级高于前端元素
  • uni-app插件市场有封装的前端tabbar,但性能不如原生tabbar
  • 如果想要一个中间带+号的tabbar,在HBuilderX中新建uni-app项目、选择 底部选项卡 模板
  • 以上大部分操作 tabbar 的 API 需要在 tabbar 渲染后才能使用,避免在 tabbar 未初始化前使用
posted @   毛三仙  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示