颤动如何使具有灵活约束的容器的孩子居中
Posted
技术标签:
【中文标题】颤动如何使具有灵活约束的容器的孩子居中【英文标题】:Flutter how to center the child of a Container which has flexible constraints 【发布时间】:2020-05-12 02:53:21 【问题描述】:我正在尝试构建一个消息框,就像在 Messenger 应用程序中使用的那样(例如: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,),
),
)
但是,每当我尝试将文本(包括填充)小部件居中时,Container 都会被强制使用它的最大约束。这些是我尝试过的一些方法
使用 Center 小部件 使用容器的alignment属性 用 Column 包装子节点并使用 mainAxisAlignment.center所有这些方法的结果都是一样的:
有什么方法可以让 Text 小部件居中而不操纵盒子约束吗?
【问题讨论】:
【参考方案1】:试试这个:
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"),
],
),
);
【讨论】:
以上是关于颤动如何使具有灵活约束的容器的孩子居中的主要内容,如果未能解决你的问题,请参考以下文章