如何实现Tabs组件的TabBar从左到右依次排列

如何实现Tabs组件的TabBar从左到右依次排列

HarmonyOS
2024-03-17 17:22:35
浏览
收藏 1
回答 1
待解决
回答 1
按赞同
/
按时间
济南二狗子

系统提供的Tabs暂不支持居左显示,可以通过Scroll和Row组件用来实现一个页签,在onclick事件中通过修改索引值和Tabs组件的索引联动,实现切换效果,同时将Tabs的barHeight置为0。具体实现可参考如下示例代码:

// xxx.ets 
@Entry 
@Component 
struct TabsExample { 
  @State tabArray: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 
  @State focusIndex: number = 0; 
  private controller: TabsController = new TabsController(); 
 
  build() { 
    Column() { 
      // 使用自定义页签组件 
      Scroll() { 
        Row() { 
          ForEach(this.tabArray, (item: number, index: number) => { 
            Row({ space: 20 }) { 
              Text('页签' + item) 
                .fontWeight(index === this.focusIndex ? FontWeight.Bold : FontWeight.Normal) 
            } 
            .padding({ left: 10, right: 10 }) 
            .onClick(() => { 
              this.controller.changeIndex(index); 
              this.focusIndex = index; 
            }) 
          }) 
        } 
      } 
      .align(Alignment.Start) 
      .scrollable(ScrollDirection.Horizontal) 
      .scrollBar(BarState.Off) 
      .width('100%') 
 
      //tabs组件把tabbar隐藏 
      Tabs({ barPosition: BarPosition.Start, controller: this.controller }) { 
        ForEach(this.tabArray, (item: number, index: number) => { 
          TabContent() { 
            Text('我是页面 ' + item + " 的内容") 
              .fontSize(30) 
          } 
        }) 
      }.barHeight(0) 
    } 
    .height('100%') 
    .width('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-03-18 21:04:22
相关问题
HarmonyOS 如何设定tabs组件tabbar样式
491浏览 • 1回复 待解决
如何TabstabBar,添加其他组件
466浏览 • 1回复 待解决
HarmonyOS Tabs组件tabBar宽度问题
493浏览 • 1回复 待解决
HarmonyOS tabstabBar怎么居左
407浏览 • 1回复 待解决
如何实现文本竖向排列
2338浏览 • 1回复 待解决
关于Tabs里面tabBar样式问题
284浏览 • 2回复 待解决
沉浸式图文排列布局如何实现
301浏览 • 1回复 待解决
如何实现Tabs组件tarbar吸顶效果
951浏览 • 1回复 待解决
HarmonyOS Tabs组件Tabs如何左对齐?
251浏览 • 1回复 待解决
Tab组件Tabbar中字体颜色如何修改
1115浏览 • 1回复 待解决
实现tabBar多个tab滚动
205浏览 • 1回复 待解决
HarmonyOS Tabs组件嵌套Tabs组件问题
615浏览 • 1回复 待解决
如何选择Navigation 组件Tabs 组件
2478浏览 • 1回复 待解决