HarmonyOS 关于stack组件手势遮盖问题

关于stack组件内手势遮盖问题咨询,顶层组件绑定了单击手势,底层组件绑定了双击手势,需要什么设置可以在双击时,底层的手势响应?

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Stack() {
      Stack() {
        Row() {
          Text('底层')
        }
        .justifyContent(FlexAlign.Center)
        .alignItems(VerticalAlign.Bottom)
        .width('100%')
        .height('100%')
        .gesture(
          TapGesture({ count: 2 })
            .onAction(() => {
              console.log('双击手势响应')
            })
        )
      }
      .width('100%')
      .height('90%')
      .backgroundColor(Color.Yellow)

      Stack() {
        Row() {
          Text('顶层')
        }
        .justifyContent(FlexAlign.Center)
        .width('100%')
        .height('100%')
        .gesture(
          TapGesture({ count: 1 })
            .onAction(() => {
              console.log('单击手势响应')
            })
        )
      }
      .hitTestBehavior(HitTestMode.Transparent)
      .width('100%')
      .height('80%')
      .backgroundColor(Color.Orange)
    }
    .align(Alignment.Top)
    .width('100%')
    .height('100%')
    .backgroundColor(Color.Brown)
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

目前系统确实会有遮盖的缺陷,建议将底层的双击事件绑定到父组件上,示例参考如下:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Stack() {
      Stack() {
        Row() {
          Text('底层')
        }
        .justifyContent(FlexAlign.Center)
        .alignItems(VerticalAlign.Bottom)
        .hitTestBehavior(HitTestMode.Transparent)
        .width('100%')
        .height('100%')

      }
      /**
       .gesture(
       TapGesture({ count: 2 })
       .onAction(() => {
       console.log('底层 双击手势响应')
       })
       )**/
      .width('100%')
      .height('90%')
      .backgroundColor(Color.Yellow)

      Stack() {
        Row() {
          Text('顶层')
        }
        .justifyContent(FlexAlign.Center)

        .width('100%')
        .height('100%')


      }
      .gesture(
        GestureGroup(GestureMode.Exclusive,
          TapGesture({ count: 2 })
            .onAction((event?:GestureEvent) => {
              if(event){
                console.log('顶层双击---- TapGesure2')
              }

            }),
          TapGesture({ count: 1 })
            .onAction((event?:GestureEvent) => {
              if(event){
                console.log('顶层单击---- TapGesure1')
              }
            })
        )
      )
      .hitTestBehavior(HitTestMode.Transparent)
      .width('100%')
      .height('80%')
      .backgroundColor(Color.Orange)
    }
    .parallelGesture(
      TapGesture({ count: 2 })
        .onAction(() => {
          console.log('父容器 双击手势响应')
        }))
    .responseRegion({ x: 0, y: 0, width: '100%', height: '90%' })
    .align(Alignment.Top)
    .width('100%')
    .height('100%')
    //.backgroundColor(Color.Black)
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 关于手势问题
178浏览 • 1回复 待解决
HarmonyOS RN关于drawer、stack的用法问题
141浏览 • 1回复 待解决
关于WebView提示没有用户手势问题
10548浏览 • 1回复 待解决
HarmonyOS 手势密码组件
163浏览 • 1回复 待解决
HarmonyOS pan手势问题
17浏览 • 1回复 待解决
HarmonyOS 关于video组件问题
255浏览 • 1回复 待解决
HarmonyOS 关于Web组件适配问题
127浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
826浏览 • 1回复 待解决
HarmonyOS 手势事件上报问题
326浏览 • 1回复 待解决
HarmonyOS 关于Tabs组件的TabContent问题
130浏览 • 1回复 待解决
HarmonyOS 关于组件装饰器的问题
255浏览 • 1回复 待解决
HarmonyOS 图片组件手势滑动
23浏览 • 1回复 待解决
HarmonyOS 关于Grid组件拖拽排序的问题
643浏览 • 1回复 待解决
HarmonyOS 手势响应不同角度问题
337浏览 • 1回复 待解决
HarmonyOS LongPressGesture手势移动问题
607浏览 • 1回复 待解决
关于动态创建的组件销毁问题
356浏览 • 1回复 待解决