当前位置: 首页 > news >正文

实战02-TabBar

@Entry
@Component
struct Index {

  // 当前选中的 tab 的索引
  @State currentIndex: number = 0;

  // 生成 tab 的视图函数
  @Builder TabBuilder(index: number, text: string, icon: Resource, activeIcon: Resource) {
    Column() {
      // 根据当前 tab 是否被选中,显示相应的图标和文本
      Image(this.currentIndex === index ? activeIcon : icon).width(28)
      Text(text).fontSize(10)
        .fontColor(this.currentIndex === index ? $r('app.color.black') : '#a0a0a0')
    }.width('100%').height('100%').justifyContent(FlexAlign.Center)
  }

  build() {
    Column() {
      Tabs({ 
        barPosition: BarPosition.End, // Tab 栏位置在底部
        index: this.currentIndex // 当前选中的 tab 索引
      })
        .barMode(BarMode.Fixed) // 固定 Tab 栏模式
        .onChange((index: number) => this.currentIndex = index) // Tab 切换时更新选中的索引
        .barHeight(50) // 设置 Tab 栏的高度
        .scrollable(false) // 禁用 Tab 栏滚动
        .width('100%') // Tab 栏宽度
        .height('100%') // Tab 栏高度
        .backgroundColor($r('app.color.white')) // Tab 栏背景颜色
        .vertical(false) // Tab 内容不垂直排列

        // 定义每个 Tab 内容及其对应的 TabBar
        .tabContent(
          TabContent() { Home() }
            .tabBar(this.TabBuilder(0, '首页', $r('app.media.tabbar_home'), $r('app.media.tabbar_home_active'))),

          TabContent() { See() }
            .tabBar(this.TabBuilder(1, '想看', $r('app.media.tabbar_see'), $r('app.media.tabbar_see_active'))),

          TabContent() { Service() }
            .tabBar(this.TabBuilder(2, '服务', $r('app.media.tabbar_service'), $r('app.media.tabbar_service_active'))),

          TabContent() { Discover() }
            .tabBar(this.TabBuilder(3, '发现', $r('app.media.tabbar_discover'), $r('app.media.tabbar_discover_active'))),

          TabContent() { My() }
            .tabBar(this.TabBuilder(4, '我的', $r('app.media.tabbar_my'), $r('app.media.tabbar_my_active')))
        )
    }.height('100%') // Column 高度设置为 100%
  }
}
 


http://www.mrgr.cn/news/24713.html

相关文章:

  • redis数据类型
  • table用position: sticky固定多层表头,滑动滚动条border边框透明解决方法
  • 横版闯关手游【全明星时空阿拉德】Linux手工服务端+运营后台+双app端
  • R语言数据整理和分析(1)
  • ARM base instruction -- blr
  • golang的GC(三色标记法+混合写屏障)学习笔记
  • 【PyTorch单点知识】torch.nn.Embedding模块介绍:理解词向量与实现
  • 438. 找到字符串中所有字母异位词
  • crdownload格式后缀的文件是什么东西?crdownload格式是什么
  • 秋招面经9.11
  • 智能优化算法-鼠群优化算法(RSO)(附源码)
  • Vue3: Node安装下载
  • 哈希表(功能不太全,只能查找)
  • 喜报 速程精密牵头编制团体标准《ZR机械手通用技术要求》正式发布
  • 【验证问题记录-001】后仿中无复位寄存器的初始化问题
  • Adobe Acrobat DC无法将图片转换成PDF?教你用Python快速解决,最后附上集成小程序!
  • go时间处理
  • 使用Get包显示Dialog
  • 【SQL】百题计划 - SQL最基本的判断和查询。
  • ctfshow-web入门-sql注入-web248-UDF 注入