Flutter 如何获取窗口小部件在屏幕中的位置(最好是偏移量)?
我正在尝试实现以下匹配。我能想到的方法是使用Flutter 如何获取窗口小部件在屏幕中的位置(最好是偏移量)?,flutter,flutter-layout,Flutter,Flutter Layout,我正在尝试实现以下匹配。我能想到的方法是使用onPanStart和onPanEnd来获得起始Offset和结束Offset。我还需要得到屏幕上小部件的偏移量来匹配 是否有任何方法可以获取窗口小部件在屏幕上的本地位置(窗口小部件是一个容器) 我想这就是你想要的: 为小部件设置一个键: Container( key: _key, color: Colors.red, ), 并获得小部件的位置,如下所示: final RenderBox
onPanStart
和onPanEnd
来获得起始Offset
和结束Offset
。我还需要得到屏幕上小部件的偏移量来匹配
是否有任何方法可以获取窗口小部件在屏幕上的本地位置(窗口小部件是一个
容器
) 我想这就是你想要的:
为小部件设置一个键:
Container(
key: _key,
color: Colors.red,
),
并获得小部件的位置,如下所示:
final RenderBox renderBox = _key.currentContext.findRenderObject();
final position = renderBox.localToGlobal(Offset.zero);
它工作得很好。不过,还有一个疑问,它会返回容器的中心吗?@AbhayVAshokan我不太确定。我猜是在左上角。如果是这样,你仍然可以很容易地计算出中心。