目录

鼠标光标控制

鼠标光标控制用于控制鼠标光标的显示样式,适用于需要根据组件状态或交互区域切换光标样式的场景,帮助提升用户的交互识别和操作反馈体验。

  • 从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

  • 本模块接口仅可在Stage模型下使用。

cursorControl

[h2]setCursor

setCursor(value: PointerStyle): void

方法语句中可使用的全局接口,调用该接口可更改当前的鼠标光标样式。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value PointerStyle 是 设置的光标样式。

[h2]restoreDefault

restoreDefault(): void

方法语句中可使用的全局接口,调用此接口可将鼠标光标恢复成默认箭头样式。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

PointerStyle

type PointerStyle = import('../api/@ohos.multimodalInput.pointer').default.PointerStyle

光标样式。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

类型 说明
import('../api/@ohos.multimodalInput.pointer').default.PointerStyle 光标样式。

直接使用cursorControl可能导致UI上下文不明确的问题,建议使用getUIContext()获取UIContext实例,并使用getCursorController获取绑定实例的cursorControl。

示例

该示例通过setCursor实现了鼠标光标样式的更改。

// xxx.ets
import { pointer } from '@kit.InputKit';

@Entry
@Component
struct CursorControlExample {
  build() {
    Column() {
      Row()
        .height(200)
        .width(200)
        .backgroundColor(Color.Green)
        .position({ x: 60, y: 70 })
        .onHover((flag) => {
          if (flag) {
            // 建议使用this.getUIContext().getCursorController().setCursor()
            cursorControl.setCursor(pointer.PointerStyle.EAST);
          } else {
            // 建议使用this.getUIContext().getCursorController().restoreDefault()
            cursorControl.restoreDefault();
          }
        })
      Row()
        .height(200)
        .width(200)
        .backgroundColor(Color.Blue)
        .position({ x: 130, y: 120 })
        .onHover((flag) => {
          if (flag) {
            // 建议使用this.getUIContext().getCursorController().setCursor()
            cursorControl.setCursor(pointer.PointerStyle.WEST);
          } else {
            // 建议使用this.getUIContext().getCursorController().restoreDefault()
            cursorControl.restoreDefault();
          }
        })
    }.width('100%')
  }
}

示意图:

当鼠标悬浮在蓝色区域时,显示:向西箭头光标样式。

当鼠标悬浮在绿色区域时,显示:向东箭头光标样式。