Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 在flatter中,如何在(x,y)位置找到小部件?_Flutter_Flutter Layout - Fatal编程技术网

Flutter 在flatter中,如何在(x,y)位置找到小部件?

Flutter 在flatter中,如何在(x,y)位置找到小部件?,flutter,flutter-layout,Flutter,Flutter Layout,给定一些(x,y)坐标,以逻辑像素为单位,相对于: 屏幕的左上角 某个容器的左上角 我如何知道哪个小部件处于该位置?我想您是在使用RenderBox类中的hitTest方法。按照 如果给定点包含在此渲染对象中或 它的后代之一。添加包含该点的任何渲染对象 到给定的命中测试结果 因此,您可以从密钥上下文中获取小部件的RenderBox实例 GlobalKey key = new GlobalKey(); //your stuff final RenderBox box = key.currentCo

给定一些(x,y)坐标,以逻辑像素为单位,相对于:

  • 屏幕的左上角
  • 某个容器的左上角

  • 我如何知道哪个小部件处于该位置?

    我想您是在使用
    RenderBox
    类中的
    hitTest
    方法。按照

    如果给定点包含在此渲染对象中或 它的后代之一。添加包含该点的任何渲染对象 到给定的命中测试结果

    因此,您可以从密钥上下文中获取小部件的RenderBox实例

    GlobalKey key = new GlobalKey();
    //your stuff
    final RenderBox box = key.currentContext.findRenderObject()
    // do box.hitTest
    

    这是一个相对昂贵的操作。你确定要这么做吗?是的。为什么我会问其他问题?@RémiRousselet,这是一个昂贵的操作吗?@Suragch这基本上会通过所有的小部件并检查它们individually@MarcG因为根据您真正想要做的事情,您可能不需要这样做。如果
    box
    在选项卡视图中怎么办?切换到另一个选项卡并返回时,结果不正确;它返回不同的值