HarmonyOS 鸿蒙Next:分享一个基于(状态管理V2)的Tabs组件SlidingTabs,更灵活的布局和更丝滑的Tab切换,支持自定义TabItem和TabIndicator

HarmonyOS 鸿蒙Next:分享一个基于(状态管理V2)的Tabs组件SlidingTabs,更灵活的布局和更丝滑的Tab切换,支持自定义TabItem和TabIndicator

SlidingTabs


简介

SlidingTabs是一个基于状态管理V2的Tabs组件,相比系统的Tabs组件有以下优势和特点:

  1. SlidingTabs布局更加灵活,不与Swiper强制绑定在一起,用户可根据需求自定义搭配
  2. SlidingTabs可自定义TabItem和TabIndicator满足更多个性化需求
  3. SlidingTabs有更好的Tab切换体验

项目地址

https://gitee.com/XiaoQiWen/sliding-tabs

下载安装

ohpm install [@xqw](/user/xqw)/sliding-tabs
 

预览效果

使用说明

[@Local](/user/Local) tabs = ["全部","我的自选","持仓"]
tabController = new SlidingTabController()
SlidingTabs({
    tabs: this.tabs,
    barMode : "fixed",
    tabController: this.tabController,
    tabStyle:{
      showIndicator:false,
      indicatorAlignment:Alignment.Top,
      indicatorWidthWrapTab:true,
      indicatorPadding:{left:20,right:20}
    }
  })

搭配Swiper使用

SlidingTabs({
    tabs: this.scrollTabs,
    barMode : "scroll",
    tabController: this.tabController4,
    tabStyle:{
      indicatorWidthWrapTab:true,
      fontColorSelect:Color.Blue
    }
  })
  Swiper(this.tabController4.swiperController){
    ForEach(this.scrollTabs,(item:string,index)=>{
      Stack()
      {
        Text("This Is Page -> "+item)
      }
        .width('100%').height('100%')
    })
  }.layoutWeight(1)
  .onGestureSwipe((index,extraInfo)=>{
    this.tabController4.swiperOnGestureSwipe(index,extraInfo)
  })
  .onAreaChange((oldValue,newValue)=>{
    this.tabController4.swiperOnAreaChange(oldValue,newValue)
  })
  .onAnimationStart((index,targetIndex,extraInfo)=>{
    this.tabController4.swiperOnAnimationStart(index,targetIndex,extraInfo)
  })

属性说明

参数名称 入参类型 说明
tabs string[] Tab标题
onChange (index: number) => void 选中Tab回调函数
tabStyle ITabStyle Tab样式
barMode BarMode Tab滚动样式scroll or fixed
onTabItemBuilder (tab: string, index: number) => void 自定义TabItem
onTabIndicatorBuilder () => void 自定义Tab指示器
tabController SlidingTabController tab控制器

ITabStyle属性说明

参数名称 入参类型 说明
barHeight number TabBar高度,默认50
animationDuration number 动画时长
fontSizeNormal number 默认文字大小
fontSizeSelect number 选中文字大小
fontColorSelect ResourceColor 选中文字颜色
fontColorNormal ResourceColor 默认文字颜色
fontWeightNormal FontWeight 默认文字权重
fontWeightSelect FontWeight 选中文字权重
showIndicator boolean 是否显示指示器
indicatorWidth number 指示器宽度
indicatorHeight number 指示器高度
indicatorPadding number|Padding 指示器内部Padding
indicatorMargin number|Padding 指示器外部边距
indicatorColor ResourceColor 指示器颜色
indicatorRadius number 指示器圆角
indicatorAlignment Alignment 指示器位置
indicatorWidthWrapTab boolean 如果为true指示器宽度自适应tab宽度,false则以indicatorWidth为准

更多使用请查看Index.ets

问题反馈

使用过程中有任何使用问题和Bug都可以提Issue,我会抽空查看和解决问题的。


更多关于HarmonyOS 鸿蒙Next:分享一个基于(状态管理V2)的Tabs组件SlidingTabs,更灵活的布局和更丝滑的Tab切换,支持自定义TabItem和TabIndicator的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next:分享一个基于(状态管理V2)的Tabs组件SlidingTabs,更灵活的布局和更丝滑的Tab切换,支持自定义TabItem和TabIndicator的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,针对您分享的基于状态管理V2的Tabs组件SlidingTabs,其灵活布局与丝滑的Tab切换功能确实为开发者提供了极大的便利。关于该组件的自定义TabItem和TabIndicator功能,这里简要说明其实现原理及注意事项:

SlidingTabs组件通过状态管理V2实现了对Tab状态的精准控制,从而保证了Tab切换的流畅性。自定义TabItem允许开发者根据需求设计Tab的外观,包括图标、文字、颜色等,增强了UI的个性化。而TabIndicator则用于指示当前激活的Tab,其样式、位置及动画效果均可自定义,以提升用户体验。

在实现自定义时,建议遵循HarmonyOS的UI设计规范,确保TabItem与TabIndicator的视觉效果与整体应用风格保持一致。同时,注意优化性能,避免复杂的自定义导致切换卡顿。

此外,HarmonyOS提供了丰富的API和文档支持,开发者可查阅相关资源,以更深入地理解SlidingTabs组件的工作原理及自定义方法。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部