温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

OpenHarmony按钮支持哪些事件

发布时间:2025-10-17 17:30:07 来源:亿速云 阅读:117 作者:小樊 栏目:软件技术

OpenHarmony按钮支持的主要事件

1. 点击事件(ClickEvent)

点击事件是按钮最常用的交互事件,当用户点击按钮时触发。可以通过onClick属性(内联回调)或addClickListener方法(监听器)注册处理逻辑,回调函数会接收事件对象(包含点击位置坐标等信息)。
示例代码:

Button("Click Me")
  .onClick((e) => {
    console.info(`Button clicked at (${e.x}, ${e.y})`);
  });

button.addClickListener(() => {
  console.log("Button clicked");
});

2. 长按事件(LongPressEvent)

长按事件在用户长按按钮(持续按压超过系统阈值)时触发。支持通过onLongPress属性或addLongPressListener方法注册处理逻辑,常用于实现“长按删除”“长按编辑”等功能。
示例代码:

Button("Long Press Me")
  .onLongPress(() => {
    console.log("Button long pressed");
  });

3. 触摸事件(TouchEvent)

触摸事件覆盖用户与按钮交互的全过程(按下、移动、释放),通过setOnTouchListener方法注册监听器,回调函数接收TouchEvent对象(包含动作类型:ACTION_DOWN/ACTION_UP/ACTION_MOVE)。适用于需要精细控制触摸行为的场景(如拖拽按钮、绘制轨迹)。
示例代码:

button.setOnTouchListener((event) => {
  switch (event.action) {
    case MotionEvent.ACTION_DOWN:
      console.log("Button pressed down");
      break;
    case MotionEvent.ACTION_UP:
      console.log("Button released");
      break;
    case MotionEvent.ACTION_MOVE:
      console.log("Finger moved on button");
      break;
  }
  return true; // 返回true表示事件已处理
});

4. 按键事件(KeyEvent)

按键事件适用于可获焦组件(如Button),当用户通过键盘、遥控器等输入设备按下或释放按键时触发。通过onKeyEvent属性注册回调函数,回调函数接收KeyEvent对象(包含按键类型、键码、输入设备类型等信息),支持事件冒泡阻塞(stopPropagation方法)。
示例代码:

Button("Key Event Button")
  .onKeyEvent((event) => {
    if (event.type === KeyType.Down) {
      console.log(`Key pressed: ${event.keyText}`);
    } else if (event.type === KeyType.Up) {
      console.log(`Key released: ${event.keyText}`);
    }
    event.stopPropagation(); // 阻止事件冒泡
  });

5. 焦点事件(FocusEvent)

焦点事件在按钮获得或失去焦点时触发,适用于需要处理焦点状态的场景(如输入框焦点切换、焦点样式变化)。通过onFocus(获得焦点)和onBlur(失去焦点)属性注册回调函数,无事件冒泡。
示例代码:

Button("Focus Button")
  .onFocus(() => {
    console.log("Button gained focus");
  })
  .onBlur(() => {
    console.log("Button lost focus");
  });

6. 鼠标事件(MouseEvent)

鼠标事件在用户使用鼠标与按钮交互时触发(如点击、悬浮、移动),通过addMouseListener方法注册监听器,回调函数接收MouseEvent对象(包含鼠标位置、按键、动作等信息)。适用于支持鼠标的设备(如平板搭配外接鼠标)。
示例代码:

button.addMouseListener({
  onClick: (event) => {
    console.log(`Mouse clicked at (${event.x}, ${event.y})`);
  },
  onHover: (isHover) => {
    console.log(`Mouse ${isHover ? 'entered' : 'exited'} button`);
  }
});

7. 悬浮态效果(HoverEffect)

虽然不是传统意义上的“事件”,但悬浮态是按钮在鼠标悬浮时的视觉反馈,通过hoverEffect属性设置(可选Auto/Highlight/None),属于交互的一部分。默认值为Auto(系统自动处理悬浮效果)。
示例代码:

Button("Hover Button")
  .hoverEffect(HoverEffect.Highlight); // 鼠标悬浮时高亮显示
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI