与颤振中的堆栈对齐

时间:2019-11-21 09:11:44

标签: flutter flutter-layout

项目

嗨, 我试图在Flutter的Stack中对齐一些小部件。我的最终结果是这样的: enter image description here

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

我的问题很简单:

示例代码

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

这不会像我预期的那样呈现。无论我在alignment字段中输入什么内容:Alignment.centerRightAlignment.centerLeft都会始终将孩子放在左中间。

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

有什么想法吗?

谢谢

2 个答案:

答案 0 :(得分:1)

嗨,justAnotherOverflowUser,

在这种情况下,您必须在Positioned小部件内使用Stack小部件, 它会给你你想要的。

例如:

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

答案 1 :(得分:1)

这种对齐更灵活的方式是用 (node:26284) UnhandledPromiseRejectionWarning: Error: 409: Conflict: terminated by setWebhook request 包裹 Align 原始答案发布在这里Flutter: bottom center widget in stack

Positioned.fill