HarmonyOS Marquee组件引起点击事件冲突

marquee组件与image同在约束布局中,image居左,marquee居中,当marquee不满一行未运行跑马灯效果时,image点击事件正常响应,当marquee超过一行开始运行跑马灯效果时,image点击事件不会触发

HarmonyOS
2024-12-26 15:37:23
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
shlp

可以在Marquee组件下添加 .hitTestBehavior(HitTestMode.Transparent)让手势透传下去,点击事件就可以正常触发了参考链接:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-hit-test-behavior.md

参考demo:

import promptAction from '@ohos.promptAction'
import measure from '@ohos.measure'
import componentUtils from '@ohos.arkui.componentUtils'
@Entry
@Component
struct MarqueeExample {
  @State @Watch('textChange') private webTitle: string ="asdhaidiuassakurasakurasakurasakurasakurasak" //'sakurasakurasakurasakurasakurasakurasakurasakurasakurasakura'
  @State private overflow: boolean = true
  textChange() {
    let width = measure.measureText({
      textContent: this.webTitle,
      fontSize: 20 // 单位fp
    }) // 返回值单位px

    let rect = componentUtils.getRectangleById('title')
    this.overflow = width > rect.size.width
  }

  build() {
    Column() {
      Row({ space: 40 }) {

        Image($r('app.media.app_icon'))
          .width(50)
          .height(50)
          .onClick(() => {
            console.log(TAG, 'click me')
            promptAction.showToast({
              message: 'click me',
              duration: 2000
            })

          })

        Marquee({src:this.webTitle, start:true})
          .fontSize(20)
          .fontColor(Color.Black)
          .id('title')
          .align(Alignment.Center)
          .hitTestBehavior(HitTestMode.Transparent)

      }


    }
    .backgroundColor(Color.Green)
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
分享
微博
QQ
微信
回复
2024-12-26 17:47:14
相关问题
HarmonyOS 滑动事件冲突
908浏览 • 1回复 待解决
设置TextInput组件光标位置在起点
1353浏览 • 1回复 待解决
HarmonyOS 组件叠加阻拦点击事件问题
799浏览 • 1回复 待解决
HarmonyOS 触摸事件冲突问题
713浏览 • 1回复 待解决
Marquee组件使用问题有哪些?
1144浏览 • 0回复 待解决
滑动嵌套事件冲突处理
1025浏览 • 0回复 待解决
HarmonyOS Scroll中嵌套List滑动事件冲突
819浏览 • 1回复 待解决
事件分发冲突问题,如何解决?
1278浏览 • 1回复 待解决
HarmonyOS 点击事件过滤
677浏览 • 1回复 待解决
HarmonyOS 父子组件滑动冲突
772浏览 • 1回复 待解决
组件中如何处理子组件点击事件
3652浏览 • 1回复 待解决
HarmonyOS 如何hook点击事件
897浏览 • 1回复 待解决
HarmonyOS 点击事件判定问题
888浏览 • 1回复 待解决
HarmonyOS 点击事件监听问题
847浏览 • 1回复 待解决