uni-app 之 设置 tabBar

tabBar 是移动应用中常见的导航模式,uni-app 提供了丰富的 API 来动态控制 tabBar 的外观和行为。

1. uni.setTabBarItem(object)

动态设置 tabBar 某一项的内容

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
textstringtab 上的按钮文字
iconPathstring图片路径,icon 大小限制为 40kb
selectedIconPathstring选中时的图片路径,icon 大小限制为 40kb
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
uni.setTabBarItem({index:0,text:"首页",iconPath:"/static/icon/home.png",selectedIconPath:"/static/icon/home-active.png",});

2. uni.setTabBarStyle(object)

动态设置 tabBar 的整体样式

参数说明
属性类型默认值必填说明
colorstringtab 上的文字默认颜色
selectedColorstringtab 上的文字选中时的颜色
backgroundColorstringtab 的背景色
borderStylestringtabBar 上边框的颜色,仅支持 black/white
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
uni.setTabBarStyle({color:"#7A7E83",selectedColor:"#007AFF",backgroundColor:"#F8F8F8",borderStyle:"black",});

3. uni.hideTabBar(object)

隐藏 tabBar

参数说明
属性类型默认值必填说明
animationbooleanfalse是否需要动画效果
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 隐藏 tabBar,带动画效果 uni.hideTabBar({animation:true,});

4. uni.showTabBar(object)

显示 tabBar

参数说明
属性类型默认值必填说明
animationbooleanfalse是否需要动画效果
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 显示 tabBar,带动画效果 uni.showTabBar({animation:true,});

5. uni.setTabBarBadge(object)

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

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
textstring显示的文本,超过 4 个字符则显示为 …
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 为第一个 tab 添加 badge uni.setTabBarBadge({index:0,text:"3",});

6. uni.removeTabBarBadge(object)

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

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 移除第一个 tab 的 badge uni.removeTabBarBadge({index:0,});

7. uni.showTabBarRedDot(object)

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

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 显示第一个 tab 的红点 uni.showTabBarRedDot({index:0,});

8. uni.hideTabBarRedDot(object)

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

参数说明
属性类型默认值必填说明
indexnumbertabBar 的哪一项,从左边算起
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数
示例代码
// 隐藏第一个 tab 的红点 uni.hideTabBarRedDot({index:0,});

完整示例

exportdefault{methods:{// 初始化 tabBar 样式initTabBar(){// 设置 tabBar 整体样式 uni.setTabBarStyle({color:"#7A7E83",selectedColor:"#007AFF",backgroundColor:"#FFFFFF",borderStyle:"black",});// 设置各 tab 项 uni.setTabBarItem({index:0,text:"首页",iconPath:"/static/tabbar/home.png",selectedIconPath:"/static/tabbar/home-selected.png",}); uni.setTabBarItem({index:1,text:"分类",iconPath:"/static/tabbar/category.png",selectedIconPath:"/static/tabbar/category-selected.png",}); uni.setTabBarItem({index:2,text:"购物车",iconPath:"/static/tabbar/cart.png",selectedIconPath:"/static/tabbar/cart-selected.png",}); uni.setTabBarItem({index:3,text:"我的",iconPath:"/static/tabbar/user.png",selectedIconPath:"/static/tabbar/user-selected.png",});},// 更新购物车数量显示updateCartBadge(count){if(count >0){ uni.setTabBarBadge({index:2,text: count.toString(),});}else{ uni.removeTabBarBadge({index:2,});}},// 显示消息红点showMessageDot(show){if(show){ uni.showTabBarRedDot({index:3,});}else{ uni.hideTabBarRedDot({index:3,});}},// 在特定页面隐藏 tabBarhideTabBarInPage(){ uni.hideTabBar({animation:true,});},// 返回页面时显示 tabBarshowTabBarInPage(){ uni.showTabBar({animation:true,});},},mounted(){this.initTabBar();},};

注意事项

  1. 所有 tabBar 相关 API 都需要在 tabBar 已经初始化完成后再调用
  2. iconPathselectedIconPath 必须使用本地资源路径
  3. badge 文本超过 4 个字符会显示为 …
  4. 红点和 badge 不能同时显示在同一项上
  5. 在不同平台上的表现可能会有细微差异
  6. 修改 tabBar 样式时建议在应用启动时进行,避免频繁修改影响性能

Read more

在 Windows 上实现多 JDK 快速切换方案

在 Windows 系统中管理多个 JDK 版本时,手动修改环境变量效率较低。本文介绍一种通过 .bat批处理脚本结合 JAVA_HOME 变量联动机制实现一键切换 JDK 的高效方法。觉得文章冗余,不利于快速解决问题,可将本文提供给AI总结处理,快速且高效 该方案的核心思想是:利用系统环境变量 %JAVA_HOME% 的动态指向,配合批处理脚本自动修改其值,从而快速切换不同版本的 JDK。 第一步:调整环境变量顺序(关键) 为了确保 %JAVA_HOME% 能正确生效并被优先识别,必须将其路径设置为环境变量中的第一个条目。 操作步骤: 1. 打开“环境变量编辑窗口”(可通过“此电脑 → 属性 → 高级系统设置 → 环境变量”进入)。 2. 在“系统变量”区域找到 Path 变量,点击“

By Ne0inhk
Java 2026年面试总结(持续更新)

Java 2026年面试总结(持续更新)

1.自我介绍简单一点吧,把自己的情况说清楚,一两分钟即可。 2.微服务的组件 答:微服务是把一个类似单体项目根据某种维度进行拆分,比如根据功能模块进行拆分。 拆分之后,具备了更好的抗压性/扩展性,还可以更好的解耦,但是维护相比之前会更麻烦了 常用的组件有Spring Cloud。其中里面有: Nacos:用来做注册中心/配置中心 Gateway:用来做网关 Hystrx:做限流、熔断、降级 Dubbo:做服务间的调用 Feign:也是服务间的调用 3.mq的运用 答:本项目中是用作削峰和解耦。 4.项目的并发量 5.机器搭建 6.团队的规模 7.查询优化 答:索引 8.spring的知识点 9.@resource/@Autowired区别 答:

By Ne0inhk
JavaSE基础-Java String不可变性深度解析

JavaSE基础-Java String不可变性深度解析

目录 Java String 不可变性(Immutability)深度解析 一、核心原因详解 1. 字符串常量池(String Pool)—— 内存共享的基础 精简版 详细版 2. 安全性(Security)—— 防止被恶意篡改 精简版 详细版 3. 线程安全(Thread Safety)—— 天然的不可变对象 精简版 详细版 4. 适合作为 HashMap 的 Key —— hashCode 缓存 精简版 详细版 5. 缓存 hashCode —— 提升性能 二、不可变对象的一般性好处(扩展) 三、一句话总结 高频修改场景的核心矛盾:不可变性带来的 GC 压力

By Ne0inhk

Java 8 中 HashMap 到底有啥不同?

HashMap 是 Java 开发中使用最频繁的集合类之一,它基于哈希表实现 Map 接口,以键值对形式存储数据。在 Java 8 中,HashMap 的实现经历了自诞生以来最大的一次重构,引入了许多重要的优化和改进,旨在解决旧版本中存在的性能瓶颈和潜在问题。本文将从底层数据结构、哈希算法、扩容机制、线程安全性等多个维度,结合源码深入剖析 Java 8 中 HashMap 的变革,带你全面理解这些差异背后的设计思想。 1. HashMap 基础回顾 在深入 Java 8 的改动之前,有必要先回顾一下 HashMap 的基本概念和 Java 7 及之前版本的核心实现。 * 存储结构:HashMap 内部维护一个 Node<K,V>[] table 数组(

By Ne0inhk