解锁高效布局:Tab组件最佳实践指南

容器组件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)
  }
}

无从把握的时候才感到疲惫。只要去行动就能获得解放,哪怕做得不好也比无所作为强。 ---列夫·托尔斯泰-

相关推荐
李@十一₂⁰2 小时前
HTML 特殊字体符号
前端·html
小奶包他干奶奶4 小时前
Webpack学习——Loader(文件转换器)
前端·学习·webpack
zy happy4 小时前
若依 vue3 报错:找不到模块“@/api/xxxx/xxxxx”或其相应的类型声明。。Vue 3 can not find mod
前端·javascript·vue.js
潘小安4 小时前
Git Worktree + Claude Code:让你的开发效率翻倍的秘密武器
前端
meichaoWen5 小时前
【Vue3】vue3的全面学习(一)
前端·javascript·学习
小猪努力学前端5 小时前
在 React + React Router v7 SSR 项目里做多端适配,我踩的两个坑
前端·react.js
q***d1735 小时前
React桌面应用开发
前端·react.js·前端框架
8***29315 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
0***145 小时前
React计算机视觉应用
前端·react.js·计算机视觉
Q***K555 小时前
React高级
前端·react.js·前端框架