鸿蒙5.0开发进阶:UI框架-ArkTS组件(Tabs)

往期鸿蒙全套实战文章必看:(文中附带全栈鸿蒙学习资料)


Tabs

通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。

说明

该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

该组件从API Version 11开始默认支持安全区避让特性(默认值为:expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM])),开发者可以重写该属性覆盖默认行为,API Version 11之前的版本需配合expandSafeArea属性实现安全区避让。

子组件

不支持自定义组件作为子组件, 仅可包含子组件TabContent, 以及渲染控制类型if/elseForEach, 并且if/else和ForEach下也仅支持TabContent, 不支持自定义组件。

说明

Tabs子组件的visibility属性设置为None,或者visibility属性设置为Hidden时,对应子组件不显示,但依然会在视窗内占位。

Tabs子组件TabContent显示之后不会销毁,若需要页面懒加载和释放。

接口

Tabs(value?: {barPosition?: BarPosition, index?: number, controller?: TabsController})

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
barPosition BarPosition

设置Tabs的页签位置。

默认值:BarPosition.Start

index number

设置当前显示页签的索引。

默认值:0

说明:

设置为小于0的值时按默认值显示。

可选值为[0, TabContent子节点数量-1]。

直接修改index跳页时,切换动效不生效。 使用TabController的changeIndex时,默认生效切换动效,可以设置animationDuration为0关闭动画。

从API version 10开始,该参数支持$$双向绑定变量。

Tabs重建、系统资源切换(如系统字体切换、系统深浅色切换)或者组件属性变化时,会跳转到index对应的页面。若需要在上述情况下不跳转,建议使用双向绑定。

controller TabsController 设置Tabs控制器。

BarPosition枚举说明

Tabs页签位置枚举。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称 描述
Start vertical属性方法设置为true时,页签位于容器左侧;vertical属性方法设置为false时,页签位于容器顶部。
End vertical属性方法设置为true时,页签位于容器右侧;vertical属性方法设置为false时,页签位于容器底部。

属性

除支持通用属性外,还支持以下属性:

vertical

vertical(value: boolean)

设置是否为纵向Tab。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value boolean

是否为纵向Tab。

默认值:false,横向Tabs,为true时纵向Tabs。

当横向Tabs设置height为auto时,Tabs组件高度自适应子组件高度,即为tabBar高度+divider线宽+TabContent高度+上下padding值+上下border宽度。

当纵向Tabs设置width为auto时,Tabs组件宽度自适应子组件宽度,即为tabBar宽度+divider线宽+TabContent宽度+左右padding值+左右border宽度。

尽量保持每一个页面中的子组件尺寸大小一致,避免滑动页面时出现页面切换动画跳动现象。

scrollable

scrollable(value: boolean)

设置是否可以通过滑动页面进行页面切换。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value boolean

是否可以通过滑动页面进行页面切换。

默认值:true,可以通过滑动页面进行页面切换。为false时不可滑动切换页面。

barMode

barMode(value: BarMode, options?: ScrollableBarModeOptions)

设置TabBar布局模式。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value BarMode

布局模式。

默认值:BarMode.Fixed

options10+ ScrollableBarModeOptions

Scrollable模式下的TabBar的布局样式。

说明:

仅Scrollable且水平模式下有效。

barMode10+

barMode(value: BarMode.Fixed)

设置TabBar布局模式为BarMode.Fixed。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value BarMode.Fixed 所有TabBar会平均分配barWidth宽度(纵向时平均分配barHeight高度)。

barMode10+

barMode(value: BarMode.Scrollable, options: ScrollableBarModeOptions)

设置TabBar布局模式为BarMode.Scrollable。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value BarMode.Scrollable 所有TabBar都使用实际布局宽度,超过总宽度(横向Tabs的barWidth,纵向Tabs的barHeight)后可滑动。
options ScrollableBarModeOptions

Scrollable模式下的TabBar的布局样式。

说明:

仅水平模式下有效。

barWidth

barWidth(value: Length)

设置TabBar的宽度值。设置为小于0或大于Tabs宽度值时,按默认值显示。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value Length8+

TabBar的宽度值。

默认值:

未设置SubTabBarStyleBottomTabBarStyle的TabBar且vertical属性为false时,默认值为Tabs的宽度。

未设置SubTabBarStyle和BottomTabBarStyle的TabBar且vertical属性为true时,默认值为56vp。

设置SubTabBarStyle样式且vertical属性为false时,默认值为Tabs的宽度。

设置SubTabBarStyle样式且vertical属性为true时,默认值为56vp。

设置BottomTabBarStyle样式且vertical属性为true时,默认值为96vp。

设置BottomTabBarStyle样式且vertical属性为false时,默认值为Tabs的宽度。

barHeight

barHeight(value: Length)

设置TabBar的高度值。设置为'auto'时,TabBar自适应子组件高度,仅在水平模式下有效。设置为小于0或大于Tabs高度值时,按默认值显示。若设置barHeight为固定值后,TabBar无法扩展底部安全区。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值