鼠标光标控制用于控制鼠标光标的显示样式,适用于需要根据组件状态或交互区域切换光标样式的场景,帮助提升用户的交互识别和操作反馈体验。
从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
setCursor(value: PointerStyle): void
方法语句中可使用的全局接口,调用该接口可更改当前的鼠标光标样式。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| value | PointerStyle | 是 | 设置的光标样式。 |
restoreDefault(): void
方法语句中可使用的全局接口,调用此接口可将鼠标光标恢复成默认箭头样式。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
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%')
}
} 示意图:
当鼠标悬浮在蓝色区域时,显示:向西箭头光标样式。

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