首页 > 解决方案 > 在颤动中与堆栈对齐

问题描述

项目

嗨,我试图在 Flutter 的 Stack 中对齐一些小部件。我的最终结果是这样的: 在此处输入图像描述

我知道这可以通过 Row 轻松实现,但我想为两个孩子的位置设置动画,所以我不得不使用堆栈。

我的问题很简单:

示例代码

return Container(
  child: Stack(
    children: <Widget>[
      Align(
        alignment: Alignment.centerLeft,
        child: _buildSign(),
      ),
      Align(
        alignment: Alignment.centerRight,
        child: _buildSign(),
      ),
    ],
  ),
);

这不会像我预期的那样呈现。无论我在该alignment字段中放置什么:Alignment.centerRight并且Alignment.centerLeft始终将孩子放在左侧的中心。

仅当我为包装容器提供固定宽度时,问题才能解决。现在我明白为什么会发生这种情况了,但是如果我想让容器和他的孩子一样大怎么办?标签是动态文本,所以他的宽度对我来说是不可预测的

有任何想法吗?

谢谢

标签: flutterflutter-layout

解决方案


海只是另一个溢出用户,

在你的情况下,你必须在 Widget 中使用PositionedWidget Stack,它会给你你想要的。

例如:

Positioned(
  left: 20.0,
  child: Icon(
    Icons.monetization_on, 
    size: 36.0, 
    color: const Color.fromRGBO(218, 165, 32, 1.0)
  )
)

推荐阅读