容器组件Tabs
当页面内容较多时,可以通过Tabs组件进行分类展示,以下这些效果都可以通过Tabs组件来实现
Tabs组件的页面组成包含两个部分,分别是TabContent和TabBar。TabContent是内容页,TabBar是导航页签栏,页面结构如下图所示,根据不同的导航类型,布局会有区别,可以分为底部导航、顶部导航、侧边导航,其导航栏分别位于底部、顶部和侧边
链接
基本用法
核心代码
@Entry
@Component
struct demoTabbar {
build() {
Tabs() {
// 顶级容器 TabContent() {
// 内容区域:只能有一个子组件
} .tabBar('首页')
// 导航栏
}
}
示例:
代码参考
@Entry
@Component
struct demoTabs {
build() {
Tabs() {
// 内容
TabContent() {
Text('首页的内容')
.fontSize(30)
}
// tabBar
.tabBar('首页')
TabContent() {
Text('推荐的内容')
.fontSize(30)
}
.tabBar('推荐')
TabContent() {
Text('发现的内容')
.fontSize(30)
}
.tabBar('发现')
TabContent() {
Text('我的内容')
.fontSize(30)
}
.tabBar("我的")
}
}
}
常用属性
默认的 tabs 已经可以实现切换,接下来咱们来看看如何通过属性控制他
1.垂直导航
2.导航位置
3.禁用滑动切换
通过 Tabs 的属性进行调整:
●vertical 属性即可调整导航为 水平 或 垂直
●barPosition 即可调整导航位置为 开头 或 结尾
●scrollable 即可调整是否允许 滑动切换
●animationDuration 设置动画时间 毫秒
滚动导航栏
如果导航栏的内容较多,屏幕无法容纳时,可以将他设置为滚动
代码参考
@Entry
@Component
struct demoTabs {
titles: string [] = ['首页', '关注', '热门', '军事', '体育', '八卦', '数码', '财经', '美食', '旅行']
build() {
// 外层容器
Tabs() {
// 内容
ForEach(this.titles, (title: string, index: number) => {
TabContent() {
Text(title + '的内容')
.fontSize(30)
}
.tabBar(title)
})
}
.barMode(BarMode.Scrollable)
}
}
无从把握的时候才感到疲惫。只要去行动就能获得解放,哪怕做得不好也比无所作为强。 ---列夫·托尔斯泰-