解锁高效布局: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 小时前
栗子前端技术周刊第 144 期 - Rspack 2.2、pnpm 12、Solid 2.0 RC...
前端·javascript·css
YHHLAI2 小时前
前端路由与浏览器历史:从多页应用到单页应用的演进
前端
Escalating_xu2 小时前
【C++类和对象(上)】从类的定义、封装与对象模型到内存对齐和 this 指针
开发语言·前端·c++
Json____2 小时前
宿舍安全卫生检查系统:Node 全栈开发实战
java·前端·数据库·毕业设计·课程设计·毕设·wwwoop.com
晴天162 小时前
HTML canvas标签使用指南-Day32
前端·html
weixin199701080162 小时前
《alibaba.idle.isv.order.ship 接入实录:闲鱼订单发货回传的5个隐式约束》(附Python源码)
服务器·前端·python
初願致夕霞2 小时前
五种IO模型(详解非阻塞IO与多路转接)
linux·前端·网络·数据库·tcp/ip
深圳多奥智能一卡(码、脸)通系统2 小时前
智能梯控SDK可直接用于第三方开发对接的接口文档说明书
服务器·前端·算法
烂蜻蜓2 小时前
Flask入门教程(十五):错误处理与日志——打造健壮的Web应用
前端·python·flask