HarmonyOS Tab组件里的tabBar点击如何拦截,根据情况判断是否允许切换tab

Tab组件里的tabBar点击如何拦截,根据情况判断是否允许切换tab

HarmonyOS
2024-12-20 17:02:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

暂时没有tabBar点击拦截功能实现,可以使用TabsController自定义页签以及并在其中添加事件进行逻辑判断,参考demo如下:

export class ButtonInfoModel {
  index: number = 0;
  info: string = 'home';
  title: string = 'Home';
}

const buttonInfo: ButtonInfoModel[] = [
  {
    index: 0,
    info: 'home',
    title: 'Home'
  },
  {
    index: 1,
    info: 'map',
    title: 'Map'
  },
  {
    index: 2,
    info: 'charging',
    title: 'Charging'
  }
]

@Component
export struct Home {
  @State message: string = 'Home';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Text('点击之后无法进入charging页,会跳转map页')
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            buttonInfo[2].info = "map"
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

@Component
export struct Map {
  @State message: string = 'Map';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

@Component
export struct Charging {
  @State message: string = 'Charging';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
2024-12-20 18:44:19
相关问题
Tab组件Tabbar中字体颜色如何修改
1861浏览 • 1回复 待解决
HarmonyOS tab切换demo
332浏览 • 1回复 待解决
想实现tabBar多个tab滚动
788浏览 • 1回复 待解决
HarmonyOS 怎么自定义TabTabbar
341浏览 • 1回复 待解决
HarmonyOS 怎么配置tab默认选择tabBar
555浏览 • 1回复 待解决
Tab导航栏tabbar组件突出上沿显示
2640浏览 • 1回复 待解决
Tab控件切换问题有哪些?
784浏览 • 1回复 待解决
Tab组件内嵌web view左右滑动切换问题
698浏览 • 1回复 待解决
Tab组件问题
473浏览 • 1回复 待解决
HarmonyOS tab组件无法刷新
486浏览 • 1回复 待解决