前言

随着鸿蒙生态蓬勃发展,各种实用的鸿蒙三方库已成为开发者高效开发的利器。它不仅能拓展应用功能边界,还能大幅提升开发效率,不管你是刚接触鸿蒙开发的小白,还是开发时长两年半的老司机,掌握这些三方库,绝对能让你在鸿蒙开发上更加方便!
博主在日常的工作开发中也也是如此,今天给大家分享的是tablayout三方库。

TabLayout

专门为OpenHarmony打造的一款TabLayout库,希望各位用得开心

下载安装

ohpm install @zyc/tablayout

用例

见entry目录Index.ets

使用说明

TabLayout({
  tabs: this.tabsInfo,
  gapContinuousAnimation: false,
  smartToIndex: this.smartIndex,
  indicatorStyle: {
    warpTab: true,
    type: "line",
    colorGradient: {
      angle: 90,
      direction: GradientDirection.Left,
      colors: [["#ff9a9e", 0], ["#fad0c4", 1]],
    }
  },
})
  .width("100%")

主要属性说明

参数名称 入参内容 功能简介
tabStyle ITabStyle Tab样式
indicatorStyle IIndicatorStyle 指示器样式
tabs TabItem[] 数据源
cacheCount number swiper缓存数量
isOverPage boolean Tab是否覆盖在Page上(抖音短视频效果)
gapContinuousAnimation boolean 间隔切换是否不做动画(失效)
showIndicator boolean 是否显示指示器
smartToIndex number 主动切换指示器
onTabSelected (position: number) => void Tab选中回调
onTabItemBuilder (item: TabAttr) => void 自定义Tab
onTabIndicatorBuilder () => void 自定义指示器
onContentBuilder (item: TabItem, index: number) => void Page页面(不传则无滑动)

Tab样式属性说明

参数名称 入参内容 功能简介
fontSizeNormal number 未选中文字大小
fontSizeSelect number 选中文字大小
fontColorNormal ResourceColor 未选中文字颜色
fontColorSelect ResourceColor 选中文字颜色
fontWeightNormal FontWeight 未选中文字权重
fontWeightSelect FontWeight 选中文字权重
padding Padding tab child之间的距离
alignment Alignment tab位于屏幕的位置
tabAverageEnable boolean 是否等分tab容器,必须搭配tabContainerWidth
tabContainerPadding Padding tab容器的Padding,建议使用tabContainerMargin
tabContainerMargin Padding tab容器的Margin
tabContainerHeight Length tab容器的高度
tabContainerWidth Length tab容器的宽度,默认为auto
backgroundColorNormal ResourceColor tab背景色默认
backgroundColorSelect ResourceColor tab背景色选中
backgroundImageSizeNormal SizeOptions , ImageSize tab背景默认图大小
backgroundImageSizeSelect SizeOptions , ImageSize tab背景选中图大小
borderNormal BorderOptions tab背景默认边框
borderSelect BorderOptions tab背景选中边框
borderRadiusNormal Length ,BorderRadiuses , LocalizedBorderRadiuses tab背景默认圆角
borderRadiusSelect Length ,BorderRadiuses , LocalizedBorderRadiuses tab背景选中圆角
backgroundImageNormal ResourceStr , PixelMap tab背景默认图
backgroundImageSelect ResourceStr , PixelMap tab背景选中图片

| | | |

Indicator样式属性说明

参数名称 入参内容 功能简介
type "line" , "block" , "custom" 指示器类型线条、背景块、自定义(自定义会导致绝大多数属性不生效)
width number 宽度
height number 高度
animationType "scroll" , "alpha" 切换动画
alignment Alignment 相对于Tab的位置
radius number 圆角
color ResourceColor 颜色
colorGradient ResourceColor 渐变颜色
warpTab boolean 自适应Tab宽度
margin Margin , Length 不受warpTab限制
padding Margin , Length 不受warpTab限制

已知问题

代码在API12 中,Swiper onChange回调非常的靠后,指示器和Tab选中间隔会有很明显的延迟感。API11没有该问题。
Demo目前只能运行在API12中,API11 需自行修改。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐