Flutter 如何将具有灵活约束的 Container 的子级居中

isa*_*ürk 7 dart flutter flutter-layout

我正在尝试构建一个类似于消息应用程序(例如:Whatsapp)中使用的消息框。

不尝试集中文本:

图像

容器必须根据其包含的消息(字符串)的长度在高度和宽度上灵活。

这是我的代码

Container(
         constraints: BoxConstraints(minHeight: 40,maxHeight: 200,maxWidth: 300,minWidth: 40),
         decoration: BoxDecoration(
           borderRadius:  BorderRadius.circular(40),
         ),
         child: Padding(
           padding: const EdgeInsets.fromLTRB(15,0,15,0),
           child: new Text(msg,maxLines: null,),
         ),
    )
Run Code Online (Sandbox Code Playgroud)

然而,每当我尝试将文本(包括填充)小部件居中时,容器就会被迫达到最大限制。这些是我尝试过的一些方法

  • 使用 e Center小部件
  • 使用容器的对齐属性
  • 用Column包裹子项并使用 mainAxisAlignment.center

所有这些方法的结果都是相同的:

图像

有什么方法可以使文本小部件居中并且不操纵框约束吗?

Cop*_*oad 9

尝试这个:

Container(
  constraints: BoxConstraints(minHeight: 40, maxHeight: 200, maxWidth: 360, minWidth: 40),
  decoration: BoxDecoration(color: Colors.grey, borderRadius: BorderRadius.circular(40)),
  padding: const EdgeInsets.fromLTRB(15, 0, 15, 0),
  child: Column(
    mainAxisSize: MainAxisSize.min,
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Text("Very long message"),
    ],
  ),
);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述