HarmonyOS(二十五)——Harmonyos通用事件之点击事件

组件被点击时触发的事件就是点击事件。

1.事件

名称 支持冒泡 功能描述
onClick(event: (event?: ClickEvent) => void) 点击动作触发该回调,event返回值见ClickEvent对象说明。从API version 9开始,该接口支持在ArkTS卡片中使用。

2.ClickEvent对象说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称 类型 描述
screenX number 点击位置相对于应用窗口左上角的X坐标。
screenY number 点击位置相对于应用窗口左上角的Y坐标。
X number 点击位置相对于被点击元素左上角的X坐标。
Y number 点击位置相对于被点击元素左上角的Y坐标。
timestamp8+ number 事件时间戳。触发事件时距离系统启动的时间间隔,单位纳秒。
target8+ EventTarget 触发事件的元素对象显示区域。
source8+ SourceType 事件输入设备

3. EventTarget8+对象说明

名称 参数类型 描述
area Area 目标元素的区域信息。
  1. 完整实例
    下面用一个简单的小列子查看一下点击事件onClick的用法。
// xxx.ets
@Entry
@Component
struct ClickExample {
  @State text: string = ''

  build() {
    Column() {
      Row({ space: 20 }) {
        Button('Click').width(100).height(40)
          .onClick((event: ClickEvent) => {
            this.text = 'Click Point:' + '\n  screenX:' + event.screenX + '\n  screenY:' + event.screenY
            + '\n  x:' + event.x + '\n  y:' + event.y + '\ntarget:' + '\n  component globalPos:('
            + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\n  width:'
            + event.target.area.width + '\n  height:' + event.target.area.height + '\ntimestamp' + event.timestamp;
          })
        Button('Click').width(200).height(50)
          .onClick((event: ClickEvent) => {
            this.text = 'Click Point:' + '\n  screenX:' + event.screenX + '\n  screenY:' + event.screenY
            + '\n  x:' + event.x + '\n  y:' + event.y + '\ntarget:' + '\n  component globalPos:('
            + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\n  width:'
            + event.target.area.width + '\n  height:' + event.target.area.height + '\ntimestamp' + event.timestamp;
          })
      }.margin(20)

      Text(this.text).margin(15)
    }.width('100%')
  }
}

运行效果如下:
在这里插入图片描述

相关推荐

  1. HarmonyOS开发():ArkTS组件通用事件

    2024-06-10 08:44:01       48 阅读
  2. HarmonyOS」EventHub事件通知详细使用方法

    2024-06-10 08:44:01       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-10 08:44:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-10 08:44:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-10 08:44:01       82 阅读
  4. Python语言-面向对象

    2024-06-10 08:44:01       91 阅读

热门阅读

  1. 数据库漫谈-MongoDB

    2024-06-10 08:44:01       33 阅读
  2. Linux C/C++ 进程控制

    2024-06-10 08:44:01       27 阅读
  3. 使用Kotlin编写一个Http服务器

    2024-06-10 08:44:01       35 阅读
  4. Python怎么编辑前端:深度探索与实践

    2024-06-10 08:44:01       38 阅读
  5. Oracle和Random Oracle

    2024-06-10 08:44:01       34 阅读
  6. Next.js初始化和一些配置

    2024-06-10 08:44:01       30 阅读
  7. HTML5 新的语义化标签

    2024-06-10 08:44:01       35 阅读
  8. 什么是幂等问题?

    2024-06-10 08:44:01       35 阅读
  9. kmp算法c++

    2024-06-10 08:44:01       42 阅读
  10. 树莓派 ubuntu linux 去除蓝牙历史配对信息

    2024-06-10 08:44:01       31 阅读
  11. 从零手写实现 nginx-13-nginx.conf 是 HOCON 的格式吗?

    2024-06-10 08:44:01       32 阅读