HarmonyOS鸿蒙Next中arkts语言对span加入gesture长按事件无效的原因是什么?

HarmonyOS鸿蒙Next中arkts语言对span加入gesture长按事件无效的原因是什么? 如题,代码贴下面了

Text() {
  ForEach(this.wordArr, (item: string, index: number) => {
    Span(item)
      .fontSize(100)
      .fontColor(this.isChosenArr[index] == false ? '#000000' : '#EC5706')
      .fontWeight(FontWeight.Bold)
      //TODO 长按有bug??????
      .gesture(
        // 绑定可以重复触发的LongPressGesture
        LongPressGesture({ repeat: true })
          .onAction((event: GestureEvent) => {

              this.chosenWordIndex = index;
              this.isChosenArr[index] = true

              this.word = item.match(this.rExpForWord)[0]

              console.info('====您长按了单词:', this.word)

              //T弹出闪卡添加窗口
              this.dialogController_shinyCard.open()

          })
      )


  })
}

更多关于HarmonyOS鸿蒙Next中arkts语言对span加入gesture长按事件无效的原因是什么?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

更多关于HarmonyOS鸿蒙Next中arkts语言对span加入gesture长按事件无效的原因是什么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


Span不支持长按,它支持的功能很少,Text结合span甚至没法设置行高。

在HarmonyOS鸿蒙Next中,arkts语言对span加入gesture长按事件无效的原因可能是由于span元素本身不支持手势事件。span通常用于文本的样式化,而不是交互式元素。鸿蒙系统的gesture事件通常需要绑定到支持交互的组件上,如ButtonText组件。如果尝试在span上直接绑定gesture事件,系统可能无法正确识别和处理该事件。确保将gesture事件绑定到支持交互的组件上,可以解决此问题。

在HarmonyOS鸿蒙Next中,arkts语言对span加入gesture长按事件无效的原因可能是由于span组件本身不支持gesture事件。span通常用于文本的样式设置,而不是交互事件。建议使用支持gesture事件的组件,如TextButton,并在这些组件上绑定长按事件。如果必须在span上实现长按效果,可以考虑使用onTouch事件手动处理长按逻辑。

回到顶部