flutter - 只处理特定区域的鼠标事件

标签 flutter flutter-web

我有一个六边形小部件,使用 CustomPainter,并且使用它,我制作了一个蜂窝小部件,例如

enter image description here

现在,我希望能够单击单个六边形。问题在于,六边形小部件基本上是一个矩形小部件,因此它与蜂窝结构中的其他六边形部分重叠。

我可以在六边形小部件周围添加一个 GestureDetector,但这会处理矩形中的所有点击。因此,我想忽略六边形本身之外的点击,并让鼠标点击由底层六边形处理。

这可能吗?

最佳答案

显然,CustomPainter有一个hitTest方法,因此以下代码片段似乎可以工作。

(感谢 ChatGPT 为我指明了正确的方向,尽管最初它顽固地声称 hitTest 是 CustomPaint 小部件的属性)

class HexagonPainter extends CustomPainter {
  Path hexagonPath = Path();

  @override
  bool? hitTest(Offset position) {
    //check if click is inside hexagon
    return hexagonPath.contains(position);
  }

  ...

关于flutter - 只处理特定区域的鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74861247/

相关文章:

Flutter Web Assets 图像在部署到 Web 服务器时不显示

firebase - 无法使用Flutter和Firebase将数据写入Firestore

flutter : Custom Radio Button

flutter - 如何在 token 或刷新 token 过期时使用 bloc in flutter 将用户重定向到注销页面

flutter-web - 在 Flutter Web 中使用 js 库

flutter - 我如何在 flutter 中使用颜色数组中的随机颜色(不是单色)

android - Flutter:http get 请求在 apk 版本上不起作用

firebase - 云 Firestore : Filter based on object content (via Flutter)

flutter 网络 : how to programmatically close app (browser tab)

flutter - 滚动到特定的小部件 Flutter web