目录

鼠标指针在文字部分一直是手指点击状态

问题现象

鼠标悬浮页面文字上,鼠标指针一直是手指点击状态。

背景知识

问题定位

排查应用是否使用了pointer.setPointerStyle接口设置了鼠标在悬浮文字上的光标的样式为HAND_POINTING。

分析结论

应用通过pointer.setPointerStyle接口设置了鼠标在悬浮文字上的光标的样式为HAND_POINTING。

修改建议

通过在文本组件的onHover回调函数中使用pointer.setPointerStyle接口将鼠标悬浮文字上的光标样式修改为默认。

import { pointer } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { window } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  build() {
    Column() {
      Text('鼠标悬浮文字上的样式')
        .onHover(() => {
          window.getLastWindow(this.getUIContext().getHostContext(), (error: BusinessError, win: window.Window) => {
            if (error.code) {
              console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(error));
              return;
            }
            let windowId = win.getWindowProperties().id;
            if (windowId < 0) {
              console.info(`Invalid windowId`);
              return;
            }
            try {
              pointer.setPointerStyle(windowId, pointer.PointerStyle.DEFAULT, () => {
                console.info(`Set pointer style success`);
              });
            } catch (error) {
              console.error(`Set pointer style failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
            }
          });
        });
    }.justifyContent(FlexAlign.Center)
    .alignItems(HorizontalAlign.Center)
    .width('100%')
    .height('100%');
  }
}