将 Flutter 小部件转换/平移为其宽度的负 50%

hun*_*ter 7 dart flutter flutter-layout

假设我们有一个空的父部件(一个容器),没有大小,并且绝对定位(在它自己的父部件内)在上/左(x/y)坐标处。然后我们将一个子部件(具有可变大小,事先未知)放置在父部件中。有没有办法将子项定位在其自身宽度的-50%处,使得子项的水平中心出现在其父项的x坐标处?我不想使用全局键,因为会有数百个实例。我尝试过 Transform.translate (只接受已知的 x 偏移量)、FractionalOffsets、FractionallySizedBoxes、Alignments 等,但似乎没有任何效果可以实现我想要实现的目标。有谁知道解决方案吗?

编辑:展示目标的图像 在此输入图像描述

hun*_*ter 20

根据 @pskink 的评论,我能够通过组合PositionedFractionalTranslation来实现这一点

Positioned(
    left: childWidget.x,
    top: childWidget.y,
    child: FractionalTranslation(
        translation: Offset(-0.5, -0.5),
        child: childWidget,
    )
);
Run Code Online (Sandbox Code Playgroud)