Tab组件问题

UI效果底部tab栏中间要凸起,需要盖在content上面。 看代码TabContent和TabBar都是同一层级,请问有什么方法能支持TabBar盖在TabContent上面吗?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

参考代码如下:

@Entry
@Component
struct Drag2 {
  @State tabArray: Array<number> = [0, 1, 2]
  @State focusIndex: number = 0
  @State pre: number = 0
  @State index: number = 0
  private controller: TabsController = new TabsController()
  @State test: boolean = false
  @State icon:string ='app.media.icon'

  @Builder
  Tab(tabName: string, tabItem: number, tabIndex: number) {
    Column({ space: 10 }) {
      Stack(){
        Image($r('app.media.startIcon'))
          .width(tabIndex === 1 ? 40 : 20).height(tabIndex === 1? 40 : 20)
        Text(tabName).fontSize(18)
          .margin({top:tabIndex === 1 ? 130 : 50})
      }
      .margin({bottom:tabIndex ===1 ? 80 : 0})
    }
    .justifyContent(FlexAlign.Center)
    .onClick(() => {
      this.controller.changeIndex(tabIndex)
      this.focusIndex = tabIndex
    })
    .backgroundColor(Color.White)
    .width(120)
    .height(100)
  }

  build() {
    Column() {
      Stack({alignContent:Alignment.BottomStart}) {
        //tabs
        Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
          ForEach(this.tabArray, (item: number, index: number) => {
            TabContent() {
              Text('我是页面 ' + item + " 的内容")
                .height(300)
                .width('100%')
                .fontSize(30)
            }
            .backgroundColor(Color.Blue)
          })
        }
        .barHeight(0)
        .animationDuration(100)
        .onChange((index: number) => {
          console.log('foo change')
          this.focusIndex = index
        })
        // 页签
        Row() {
          Scroll() {
            Row() {
              ForEach(this.tabArray, (item: number, index: number) => {
                this.Tab("页签 " + item, item, index)
              })
            }
            .margin({ top:20 })
            .justifyContent(FlexAlign.SpaceBetween)
            .alignItems(VerticalAlign.Bottom)
          }
          .scrollable(ScrollDirection.Horizontal)
          .scrollBar(BarS


          // 页签
          Row() {
            Scroll() {
              Row() {
                ForEach(this.tabArray, (item: number, index: number) => {
                  this.Tab("页签 " + item, item, index)
                })
              }
              .margin({ top:20 })
              .justifyContent(FlexAlign.SpaceBetween)
              .alignItems(VerticalAlign.Bottom)
            }
            .scrollable(ScrollDirection.Horizontal)
            .scrollBar(BarState.Off)
            .width('100%')
          }
          .justifyContent(FlexAlign.SpaceBetween)
          .alignItems(VerticalAlign.Bottom)
          .width('100%')
        }
        .width('100%')
      }
      .height('100%')
    }
  }
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS Navigation和Tab组件问题
983浏览 • 1回复 待解决
HarmonyOS tab组件生命周期问题
49浏览 • 1回复 待解决
Tab组件内嵌web view左右滑动切换问题
286浏览 • 1回复 待解决
HarmonyOS Tabs组件Tab栏滚动问题
564浏览 • 1回复 待解决
HarmonyOS Tab居中问题
45浏览 • 1回复 待解决
HarmonyOS tab组件无法刷新
28浏览 • 1回复 待解决
Tab控件切换问题有哪些?
274浏览 • 1回复 待解决
HarmonyOS Tab组件无法响应onPageShow
509浏览 • 1回复 待解决
TAB菜单栏相关问题如何解决?
341浏览 • 1回复 待解决
Tab组件,无法左对齐该怎么处理?
496浏览 • 1回复 待解决
HarmonyOS tab组件的页签该怎么实现
77浏览 • 1回复 待解决