繁体   English   中英

Flutter 将小部件居中对齐到特定坐标

[英]Flutter Center align widget to specific coordinate

我创建了一个弹出菜单小部件,它需要两个 arguments:一个按钮小部件和一个菜单小部件。 按下按钮时,菜单小部件作为子项传递给 OverlayEntry,然后将其添加到 Overlay.of(context)

我希望结果显示是这样的:

     O   (Button)
 ____|____
 | MENU  |
 |_______|

我可以将菜单小部件放置在定位小部件内,以便在叠加层周围自由移动,但我不知道如何获得正确的坐标。 我可以通过找到它的 Renderbox 来获得 Button 的中心,但我不知道菜单的大小,因此不知道正确的 position,直到它被绘制(因为它可以是任何小部件)。

是否有一些软布局选项可以告诉任何大小的小部件垂直或水平对齐给定坐标?

要获取小部件的大小:

首先给你的小部件一个键:

key: _key,

然后你可以像这样得到大小(和位置):

_getSize() {
    final RenderBox renderBox = _key.currentContext.findRenderObject();
    final size = renderBox.size;
    final position = renderBox.localToGlobal(Offset.zero);

    final height = size.height; //same for width
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM