Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何获取窗口小部件在屏幕中的位置(最好是偏移量)?_Flutter_Flutter Layout - Fatal编程技术网

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我不太确定。我猜是在左上角。如果是这样,你仍然可以很容易地计算出中心。