有没有更好的方法来获得一个小部件相对于另一个小部件的位置?
GlobalKey _key = GlobalKey();
GlobalKey _keyRoot = GlobalKey();
RenderBox box = _key.currentContext.findRenderObject();
Offset position = box.localToGlobal(Offset.zero);
RenderBox box2 = _keyRoot.currentContext.findRenderObject();
Offset position2 = box2.localToGlobal(Offset.zero);
double x = position.dx - position2.dx;
double y = position.dy - position2.dy;
此外,我想的立场是由左下角。
你以前做过吗?
2条答案
按热度按时间1tu0hz3e1#
我把我的解决方案放在外部类中
xzv2uavs2#
您可以创建GlobalKey的扩展来返回小部件的位置:
然后你计算你的距离类似于你已经写的:
下面是一个示例应用程序来演示它: