2

我想在悬停某个小部件时更改光标指针,但我找不到如何实现这一点。

看着这条评论似乎他们已经为 macOS 提供了它,但我找不到任何关于如何实现的信息。

如何在悬停小部件时更改光标?

4

2 回答 2

10

on有一个cursor属性MouseRegion,它控制指针在区域中时显示的光标。例如:

MouseRegion(
  cursor: SystemMouseCursors.text,
  child: YourWidgetHere(),
)
于 2020-06-26T02:51:11.300 回答
1

如果你想用自定义小部件替换鼠标光标,你也可以按照这篇文章

总之:

  1. 使用 MouseRegion 隐藏真实光标,但仍使用 onHover 保存其位置
  2. 使用 Stack 和 Positioned/AnimatedPositioned 小部件将自定义光标添加到小部件顶部
// Use a stateful widget to record the cursor position
Offset position;

Widget build(BuildContext context) {
  return MouseRegion(
    cursor: SystemMouseCursors.none,
    onHover: (event) {
      setState(() {
        // Save the position of the cursor when it moves
        position = event.position; 
      });
    },
    child: Stack(
      children: [
        MyWidget(),
        AnimatedPositioned(
          duration: const Duration(milliseconds: 100),
          left: position.dx,
          top: position.dy,
          child: CustomCursor(),
        ),
      ],
    )
  ),
}
于 2021-08-02T14:48:45.840 回答