可以使用RenderBox类的localToGlobal方法来获得当前点击widget的全局坐标。具体步骤如下:

  1. 获取当前点击事件的BuildContext对象。
  2. 使用BuildContext对象获取当前点击事件的RenderBox对象。
  3. 使用RenderBox对象的localToGlobal方法将当前点击事件的坐标转换为全局坐标。

下面是一个示例代码:

import 'package:flutter/material.dart';

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTapUp: (TapUpDetails details) {
        RenderBox box = context.findRenderObject();
        Offset offset = box.localToGlobal(details.localPosition);
        print("Global position: $offset");
      },
      child: Container(
        width: 200,
        height: 200,
        color: Colors.blue,
      ),
    );
  }
}

在上面的示例代码中,我们在GestureDetector中添加了一个onTapUp事件处理函数。当用户点击Container时,该函数会被调用,并且会获取当前点击事件的BuildContext对象。然后,我们可以使用BuildContext对象获取当前点击事件的RenderBox对象,并使用localToGlobal方法将当前点击事件的坐标转换为全局坐标。最后,我们将全局坐标打印出来。

flutter获得当前点击widget的全局坐标

原文地址: https://www.cveoy.top/t/topic/bd19 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录