组件遮挡导致Stack组件中有Span组件时,单击事件无法透过Span组件向下传递

代码如下:

@Entry 
@Component 
export struct Demo { 
  build() { 
    Column() { 
      Stack() { 
        Button('组件一') 
          .width(100) 
          .height(100) 
          .backgroundColor(Color.Red) 
          .priorityGesture(TapGesture({ count: 1 }) 
            .onAction((event?: GestureEvent) => { 
              // 开始单击 
              console.info('事件demo    组件一点击') 
            })) 
        Text(){ 
          Span('组件二') 
            .hitTestBehavior(HitTestMode.None) 
            .fontColor(Color.Orange) 
        } 
        .width(200) 
        .height(200) 
        .backgroundColor(Color.White) 
        .hitTestBehavior(HitTestMode.None) 
      } 
    } 
  } 
}
HarmonyOS
2024-04-29 00:22:51
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
l634youngpig

因为Button('组件一')被Text()遮盖,导致点击效果不成功。

本地使用下方代码测试单击事件可以向下传递,日志有稳定输出,因为 Button(‘组件一’)被Text()遮盖了,需要注意点击的位置,测试时可以把Text设置透明度以看到底部的button组件方便点击。

代码如下:

@Entry 
@Component 
export struct Demo { 
  build() { 
    Column() { 
      Stack() { 
        Button('组件一') 
          .width(100) 
          .height(100) 
          .backgroundColor(Color.Red) 
          .priorityGesture(TapGesture({ count: 1 }) 
            .onAction((event?: GestureEvent) => { 
              // 开始单击 
              console.info('事件demo 组件一点击') 
            })) 
        Text() { 
          Span('组件二') 
            .hitTestBehavior(HitTestMode.None) 
            .fontColor(Color.Orange) 
        } 
        .width(200) 
        .height(200) 
        .backgroundColor(Color.White) 
        .hitTestBehavior(HitTestMode.None) 
        .opacity(0.2) 
      } 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-04-29 16:21:37
相关问题
span组件使用margin属性失效
837浏览 • 1回复 待解决
组件事件能否到传递组件
1092浏览 • 1回复 待解决
弹窗组件调用父组件函数传递
449浏览 • 1回复 待解决
Image组件无法设置长按事件
812浏览 • 1回复 待解决
组件事件可以传到父组件
38浏览 • 1回复 待解决
组件中如何处理子组件内点击事件
1490浏览 • 1回复 待解决
harmonyOS中有支持图表的UI组件
458浏览 • 1回复 待解决
组件的属性是否可以传递Undifined
383浏览 • 1回复 待解决
js 自定义组件如何传递方法?
4738浏览 • 2回复 待解决
Web组件访问本地资源并传递参数。
447浏览 • 1回复 待解决