【问题标题】:How to properly center a Text widget in a shrinked Container within a Stack如何在堆栈内的缩小容器中正确居中文本小部件
【发布时间】:2020-06-19 06:22:34
【问题描述】:

我想要一个容器,它收缩到它的内容。这个容器应该放在一个stack中,这样容器就没有来自外部的约束了。

    ConstrainedBox(
      constraints: BoxConstraints(maxWidth: 150.0, minHeight: 48.0),
      child: Container(
        decoration: BoxDecoration(borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.black)),
        child: SelectableText(
          "Text",
        ),
      ),
    );

这段代码让容器围绕我的文本缩小,这正是我想要的。

现在我想在我的容器中居中子小部件(文本)。我用一个 Center 小部件包装了 Text ,它将容器延伸到整个可用的垂直空间,这显然不是我的意图。 我能得到的最接近的是带有列的解决方案:

    ConstrainedBox(
      constraints: BoxConstraints(maxWidth: 150.0, minHeight: 48.0),
      child: Container(
        decoration: BoxDecoration(borderRadius: BorderRadius.circular(8), border: Border.all(color: Colors.black)),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            SelectableText(
              "Node",
            ),
          ],
        ),
      ),
    );

这会使我的文本垂直而不是水平居中,感觉这不是实现我想要的正确方法。

【问题讨论】:

    标签: flutter dart mobile


    【解决方案1】:

    包裹在Center小部件中

        ConstrainedBox(
          constraints: BoxConstraints(maxWidth: 150.0, minHeight: 48.0),
          child: Center(
            child: Container(
              decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(8),
                  border: Border.all(color: Colors.black),
              ),
              child: SelectableText("Text"),
            ),
          ),
        )
    

    【讨论】:

    • 这使我的内容忽略了上面的 minHeight 约束。
    • @TobiasW 我刚刚向您展示了如何将小部件居中。
    • 我之前评论过,这不是解决方案,因为 BoxConstraints 停止使用您的解决方案。
    • 我测试了minHeight 约束有效:dartpad.dartlang.org/94476d98f5bb81f4d064c6a23e3ad485
    • 要么我得到了错误版本的 dartpad 文件,要么你不小心从我的答案中渲染了代码,而不是你发布的解决方案。
    猜你喜欢
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2023-01-09
    • 2021-08-15
    • 2021-03-26
    • 2021-09-15
    • 2022-01-22
    相关资源
    最近更新 更多