flutter获得当前点击widget的全局坐标
可以使用RenderBox类的localToGlobal方法来获得当前点击widget的全局坐标。具体步骤如下:
- 获取当前点击事件的
BuildContext对象。 - 使用
BuildContext对象获取当前点击事件的RenderBox对象。 - 使用
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方法将当前点击事件的坐标转换为全局坐标。最后,我们将全局坐标打印出来。
原文地址: https://www.cveoy.top/t/topic/bd19 著作权归作者所有。请勿转载和采集!