HarmonyOS 鸿蒙Next:分享一个基于(状态管理V2)的Tabs组件SlidingTabs,更灵活的布局和更丝滑的Tab切换,支持自定义TabItem和TabIndicator
HarmonyOS 鸿蒙Next:分享一个基于(状态管理V2)的Tabs组件SlidingTabs,更灵活的布局和更丝滑的Tab切换,支持自定义TabItem和TabIndicator
SlidingTabs
简介
SlidingTabs是一个基于状态管理V2的Tabs组件,相比系统的Tabs组件有以下优势和特点:
- SlidingTabs布局更加灵活,不与Swiper强制绑定在一起,用户可根据需求自定义搭配
- SlidingTabs可自定义TabItem和TabIndicator满足更多个性化需求
- 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
更多关于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