HarmonyOS 开发——自定义tabs导航栏实现切换效果

一.Tabs组件的子组件TabContent有属性.tabBar(),由官方文档可知,其参数value: 可以是字符串、资源引用、自定义构建器或包含 icon 和 text 的对象,用于设置 TabBar 上显示的内容。

但是该导航栏为默认样式,要想实现更多样式,必须自定义TabBar。

自定义TabBar步骤:1.使用@Builder修饰一个函数tabBarBuilder(),里面是自定义的TabBar的结构。2..tabBar()中传参为自定义构建器this.tabBarBuilder()。注:构建器函数里面是可以传参的,所以多个TabContent可以共用一个tabBarBuilder()然后传不同的参数。

二.在自定义TabBar的过程中,我们发现会遇到切换TabContent时,导航栏发生样式变化的场景。

.onChange()事件和.onTabBarClick()事件都可以获得当前页面的索引。所以设置一个存储当前页面的索引值的变量,在触发事件的时候,将获得的索引值存储到这个变量中即可。

//设置当前页面的索引值,默认为0
@State currentIndex: number = 0
//设置onChange事件
Tabs(){}
.onChange((index: number) => {
        this.currentIndex = index
      })
三.在第一点我们提到构建器函数里面是可以传参的,如果我们在传参中加上每个TabContent对应的下标值,那么在自定义的tabBar中,就可以通过判断语句来设置不同TabContent的不同样式。还可以通过传参的下标值与第二点中变量存储
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值