容器大小取决于他的内容(文本)

Container size depending on his content (text)

我希望我的容器根据其内容(在本例中为文本)具有不同的大小,如果一个用户写的文本较长,则容器会更大,而如果另一个用户写的文本较短,则容器会较小.

可能吗?如果没有,还有其他方法吗?

谢谢

This is what I want to achieve (it's a screenshot of Samsung note app)

您不需要将 widthheight 分配给 Container,因此它会根据 child:

调整大小

Container(
     color: Colors.red,
     child: const Text("Hi there111"),
)

如果您想控制最大宽度和最大高度,您将使用 Containerconstraints 字段


Container(
      color: Colors.red,
      constraints: const BoxConstraints(
          maxWidth: 200,
      ),
      child: const Text("Hi there11122222222"),
)

当然你可以在 BoxConstraints 中给它 minWidthminHeight

低于 maxWidth

时的结果

当您的文本太长以至于超过 maxWidth 的边界时的结果,在这种情况下,高度会自动调整大小:

您还可以添加填充以获得更好的外观:


Container(
    padding: EdgeInsets.all(20),
    color: Colors.red,
    constraints: const BoxConstraints(
      maxWidth: 200,
    ),
    child: const Text("Hi there11122222222222222222"),
)

但是对于其他类型的小部件,除了 Text 如果你像这样用 FittedBox 包裹它们会更安全,注意 Text 小部件 :


Container(
    padding: EdgeInsets.all(20),
    color: Colors.red,
    constraints: const BoxConstraints(
      maxWidth: 200,
    ),
    child: FittedBox(
       fit: BoxFit.fill,
       child: const Text("asfasfasfasfasf")
    ),

)