#鸿蒙通关秘籍#如何在HarmonyOS中实现自定义增删Tab标签功能?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
心存思念

在HarmonyOS中实现自定义增删Tab标签功能主要包含以下步骤:

  1. 隐藏Tab组件自带的TabBar。
Tabs() {
  ...
}
.barHeight(0) // 隐藏tab组件自带的tabbar
  1. 使用@Link修饰符将自定义TabBar组件和Tab组件的focusIndex和tabArray进行绑定。
//TabSheetComponent.ets
@Component
struct TabSheetComponent {
  @Link tabArray: Array<number>
  @Link focusIndex: number

  build() {
    ...
  }
}
    
//HandleTabs.ets
@Component
struct HandleTabs {
  @State tabArray: Array<number> = [0]; // 控制页签渲染的数组
  @State focusIndex: number = 0; // Tabs组件当前显示的页签下标

  build() {
    ...

    TabSheetComponent({ tabArray: $tabArray, focusIndex: $focusIndex })
    Tabs({ index: this.focusIndex }) {
      ForEach(this.tabArray,()=>{
        ...
      })
    }

    ...
  }
}
  1. 修改自定义TabBar中的focusIndex和tabArray以实现UI更新。
//TabSheetComponent.ets
Image('add') // 新增页签
  .onClick(() => {
    this.tabArray.push(item)
  })

...

Image('close') // 关闭指定索引页签
  .onClick(() => {
    this.tabArray.splice(index, 1)
  })

...

this.focusIndex = index; // 跳转到指定索引值

使用ForEach进行数据懒加载,确保渲染开销的降低。


分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 如何自定义tab
360浏览 • 2回复 待解决