HarmonyOS应用开发:Tabs(容器组件)

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

说明:

该组件从API Version 7开始支持。

子组件

仅可包含子组件TabContent

接口

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

参数:

参数名 参数类型 必填 参数描述
barPosition BarPosition 设置Tabs的页签位置。
默认值:BarPosition.Start
index number 设置当前显示页签的索引。
默认值:0
说明:
设置为小于0的值时按默认值显示。
可选值为[0, TabContent子节点数量-1]。
设置不同值时,默认生效切换动效,可以设置animationDuration为0关闭动画。
从API version 10开始,该参数支持$$双向绑定变量。
controller TabsController 设置Tabs控制器。

BarPosition枚举说明

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

属性

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

名称 参数类型 描述
vertical boolean 设置为false是为横向Tabs,设置为true时为纵向Tabs。
默认值:false
scrollable boolean 设置为true时可以通过滑动页面进行页面切换,为false时不可滑动切换页面。
默认值:true
barMode BarMode,ScrollableBarModeOptions TabBar布局模式,BarMode为必选项,ScrollableBarModeOptions为可选项,具体描述见BarMode枚举说明、ScrollableBarModeOptions对象说明。从API version 10开始,支持ScrollableBarModeOptions参数。其中ScrollableBarModeOptions参数仅Scrollable模式下有效,非必填参数。
默认值:BarMode.Fixed
barWidth number | Length8+ TabBar的宽度值。
默认值:
未设置SubTabBarStyleBottomTabBarStyle的TabBar且vertical属性为false时,默认值为Tabs的宽度。
未设置SubTabBarStyleBottomTabBarStyle的TabBar且vertical属性为true时,默认值为56vp。
设置SubTabbarStyle样式且vertical属性为false时,默认值为Tabs的宽度。
设置SubTabbarStyle样式且vertical属性为true时,默认值为56vp。
设置BottomTabbarStyle样式且vertical属性为true时,默认值为96vp。
设置BottomTabbarStyle样式且vertical属性为false时,默认值为Tabs的宽度。
说明:
设置为小于0或大于Tabs宽度值时,按默认值显示。
barHeight number | Length8+ TabBar的高度值。
默认值:
未设置带样式的TabBar且vertical属性为false时,默认值为56vp。
未设置带样式的TabBar且vertical属性为true时,默认值为Tabs的高度。
设置SubTabbarStyle样式且vertical属性为false时,默认值为56vp。
设置SubTabbarStyle样式且vertical属性为true时,默认值为Tabs的高度。
设置BottomTabbarStyle样式且vertical属性为true时,默认值为Tabs的高度。
设置BottomTabbarStyle样式且vertical属性为false时,默认值为56vp。
说明:
设置为小于0或大于Tabs高度值时,按默认值显示。
animationDuration number 点击TabBar页签切换TabContent的动画时长。不设置时,点击TabBar页签切换TabContent无动画。
默认值:300
说明:
该参数不支持百分比设置;设置为小于0时,按默认值300ms显示。
divider10+ DividerStyle | null 用于设置区分TabBar和TabContent的分割线样式设置分割线样式,默认不显示分割线。
DividerStyle: 分割线的样式;
null: 不显示分割线。
fadingEdge10+ boolean 设置页签超过容器宽度时是否渐隐消失。
默认值:true
barOverlap10+ boolean 设置TabBar是否背后变模糊并叠加在TabContent之上。
默认值:false
barBackgroundColor10+ ResourceColor 设置TabBar的背景颜色。
默认值:透明
barGridAlign10+ BarGridColumnOptions 以栅格化方式设置TabBar的可见区域。具体参见BarGridColumnOptions对象。仅水平模式下有效,不适用于XS、XL和XXL设
### 修改 HarmonyOSTabs 组件的字体大小 在 HarmonyOS 的开发环境中,可以通过调整 `Text` 组件中的 `fontSize` 属性来改变 Tabs 页签内的文字显示大小。具体实现方法如下: 对于单个 Tab 内容的文字尺寸设定,可以在 `TabContent()` 函数内部针对 `Text` 进行样式配置[^1]。 ```java // 设置特定标签下的文本字体大小为例 TabContent() { Text('推荐的内容') .fontSize(30) // 设定字体大小为30单位 } .tabBar('推荐') ``` 当涉及到多个 Tab 或者更复杂的布局结构时,在构建整个 Tabs 容器的时候同样可以应用此逻辑到每一个子项上[^2]。 如果希望进一步定制化 tabBar 上面按钮或者标题栏上的文字风格,则需要通过 `.tabBar()` 方法并结合自定义函数组件来进行处理,同时也可以在此处指定额外的参数用于控制外观特性,比如颜色、背景等[^3]。 为了全局统一管理所有 tab 下方条目名称的表现形式(包括但不限于字号),建议创建一个专门负责渲染这些元素的方法,并将其作为参数传递给各个 `TabContent().tabBar()` 调用之处。 ```javascript function createCustomizedTabLabel(labelName, fontSizeValue){ return function(){ return ( <div style={{fontSize:`${fontSizeValue}px`, textAlign:'center'}}> {labelName} </div> ); } } Tabs({ barPosition: BarPosition.End, controller: this.mTabController }) { TabContent() { Column(){ Text('我的内容') }.width('100%').height('100%').backgroundColor('#007DFF') }.tabBar(createCustomizedTabLabel('我的', 28)) // 使用自定义标签生成器设置字体大小 } ``` 上述代码展示了如何利用 JavaScript 创建一个接受两个参数——标签名和期望字型大小——的辅助函数 `createCustomizedTabLabel` 来动态生成具有不同字体特性的页面底部导航链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值