滑动嵌套事件冲突处理

一级Tabs组件下嵌套个二级的Tabs,二级Tabs第一个页面左滑或最后一个页面右滑不能切换一级Tabs标签

可以通过系统api或者自定义事件拦截处理吗?

HarmonyOS
2024-09-23 11:29:03
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以参考如下demo:

@Entry  
@Component  
struct TabsExample {  
  @State fontColor: string = '#182431'  
  @State selectedFontColor: string = '#007DFF'  
  @State currentIndex: number = 0  
  private controller: TabsController = new TabsController()  
  @State subCurrentIndex: number = 0  
  private subController: TabsController = new TabsController()  
  private panOptionRight: PanGestureOptions = new PanGestureOptions({ direction: PanDirection.Left })  
  private panOptionLeft: PanGestureOptions = new PanGestureOptions({ direction: PanDirection.Right })  
  
  @Builder  
  tabBuilder(index: number, name: string) {  
    Column() {  
  
      Text(name).fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)↵        .  
      fontSize(16).fontWeight(this.currentIndex === index ? 500 : 400).lineHeight(22).margin({ top: 17, bottom: 7 })  
      Divider().strokeWidth(2).color('#007DFF').opacity(this.currentIndex === index ? 1 : 0)  
    }.width('100%')  
  }  
  
  @Builder  
  subTabBuilder(index: number, name: string) {  
  
    Column() {  
      Text(name)  
        .fontColor(this.subCurrentIndex === index ? this.selectedFontColor : this.fontColor)  
        .fontSize(16)  
        .fontWeight(this.subCurrentIndex === index ? 500 : 400)  
        .lineHeight(22)  
        .margin({ top: 17, bottom: 7 })  
      Divider().strokeWidth(2).color('#007DFF').opacity(this.subCurrentIndex === index ? 1 : 0)  
    }.width('100%')  
  
  }  
  
  build() {  
  
    Column() {  
  
      Tabs({ barPosition: BarPosition.Start, index: this.currentIndex, controller: this.controller }) {  
  
        TabContent() {  
  
          Column().width('100%').height('100%').backgroundColor('#ffb554d7')  
        }.tabBar(this.tabBuilder(0, '首页'))  
  
  
        TabContent() {  
  
          Column() {  
  
            Tabs({ barPosition: BarPosition.Start, controller: this.subController }) {  
  
              TabContent() {  
  
                Column().width('100%').height('100%').backgroundColor('#00CB87').gesture(  
                  PanGesture(this.panOptionRight).onActionStart((event?: GestureEvent) => {  
  
                    console.info('Pan start')  
                  }).onActionUpdate((event?: GestureEvent) => {  
  
                    if (event) {  
  
                    }  
  
                  }).onActionEnd(() => {  
  
                    this.controller.changeIndex(2)  
                    console.info('Pan end')  
                  })  
                )  
  
              }.tabBar(this.subTabBuilder(3, 'pink'))  
  
            }  
            .vertical(false)  
            .barMode(BarMode.Fixed)  
            .barWidth(360)  
            .barHeight(56)  
            .animationDuration(400)  
            .onChange((index: number) => {  
  
              this.subCurrentIndex = index  
            })  
            .width(360)  
            .backgroundColor('#F1F3F5')  
          }  
  
  
          .width('100%').height('100%').backgroundColor('#00CB87')  
        }.tabBar(this.tabBuilder(1, '详情'))  
  
  
        TabContent() {  
  
          Column().width('100%').height('100%').backgroundColor('#ffc19757')  
        }.tabBar(this.tabBuilder(2, '我的'))  
  
      }  
      .vertical(false)  
      .barMode(BarMode.Fixed)  
      .barWidth(360)  
      .barHeight(56)  
      .animationDuration(400)  
      .onChange((index: number) => {  
        this.currentIndex = index  
      })  
      .width(360)  
      .height(296)  
      .margin({ top: 52 })  
      .backgroundColor('#F1F3F5')  
    }.width('100%')  
  
  }  
}
分享
微博
QQ
微信
回复
2024-09-23 18:43:45
相关问题
HarmonyOS Refresh组件嵌套滑动冲突问题
702浏览 • 1回复 待解决
如何处理tabs嵌套web滑动场景
398浏览 • 1回复 待解决
HarmonyOS 滑动冲突问题
228浏览 • 1回复 待解决
Web和List嵌套手势冲突问题
880浏览 • 1回复 待解决
Scroll与WaterFlow滑动嵌套
869浏览 • 1回复 待解决
HarmonyOS Tabs组件嵌套滑动
174浏览 • 1回复 待解决
Tabs组件嵌套滑动组件
1297浏览 • 1回复 待解决
HarmonyOS 嵌套滑动问题
171浏览 • 1回复 待解决
事件分发冲突问题,如何解决?
241浏览 • 1回复 待解决
Scroll内Flex加宽高与滑动冲突
1979浏览 • 1回复 待解决
HarmonyOS 嵌套滑动NestedScroll 指定offset
277浏览 • 1回复 待解决
scroll和list的嵌套滑动
1281浏览 • 1回复 待解决
HarmonyOS list 嵌套web滑动切换问题
336浏览 • 1回复 待解决
HarmonyOS List嵌套waterflow滑动卡顿
177浏览 • 1回复 待解决
HarmonyOS scroll嵌套List不能整体滑动
222浏览 • 1回复 待解决
Web嵌套滑动卡顿怎么办?
124浏览 • 1回复 待解决