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

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

HarmonyOS
2天前
浏览
收藏 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
微信
回复
2天前
相关问题
Tab组件Tabbar中字体颜色如何修改
1290浏览 • 1回复 待解决
想实现tabBar多个tab滚动
290浏览 • 1回复 待解决
Tab控件切换问题有哪些?
252浏览 • 1回复 待解决
Tab导航栏tabbar组件突出上沿显示
2248浏览 • 1回复 待解决
Tab组件内嵌web view左右滑动切换问题
261浏览 • 1回复 待解决
HarmonyOS Navigation和Tab组件问题
925浏览 • 1回复 待解决
HarmonyOS Tab组件无法响应onPageShow
489浏览 • 1回复 待解决