Flutter 如何将ClipRect中的容器调整为子文本大小
因此,我有一个构建消息的小部件(想象一个典型的WhatsApp消息对话框,或者人们可以称之为消息气泡) 现在,这里的问题是,我现在拥有的子容器有一个固定的宽度,由以下因素决定:Flutter 如何将ClipRect中的容器调整为子文本大小,flutter,flutter-layout,Flutter,Flutter Layout,因此,我有一个构建消息的小部件(想象一个典型的WhatsApp消息对话框,或者人们可以称之为消息气泡) 现在,这里的问题是,我现在拥有的子容器有一个固定的宽度,由以下因素决定: width:MediaQuery.of(context).size.width*0.3, 这是有问题的,因为它本质上并不环绕文本。相反,对于诸如hi或hello之类的小文本,聊天气泡过大。它确实可以正常地处理较长的文本位,但我们不能假设它总是这样 因此,您能否建议我如何最好地实现此媒体查询,使宽度的最大值设置为width
width:MediaQuery.of(context).size.width*0.3,
这是有问题的,因为它本质上并不环绕文本。相反,对于诸如hi
或hello
之类的小文本,聊天气泡过大。它确实可以正常地处理较长的文本位,但我们不能假设它总是这样
因此,您能否建议我如何最好地实现此媒体查询,使宽度的最大值设置为width:MediaQuery.of(context).size.width*0.3,
,但当文本较小时,它也会下降以包装文本
所以,这是一个相当基本的问题,我很长时间都没有解决。你看,这实际上需要的是一个最大和最小宽度。当我尝试做类似的事情时,我用
minwidth
和container
这两个词进行搜索,但不知怎么的,没有找到任何答案。实际上,容器也没有定义任何minWidth
。它必须写入约束
中
因此,解决这个问题的方法是在容器本身上使用一个约束(在视觉绥靖方面,它比一个灵活的容器表现得更好)
constraints: BoxConstraints(
maxWidth: 250.0,
minWidth: 30.0,
),
因此,容器将成为:
child: Container(
color: Colors.lightBlue,
padding: EdgeInsets.all(17),
constraints: BoxConstraints(
maxWidth: 250.0,
minWidth: 30.0,
),
child: Text(
text,
style: TextStyle(
color: Colors.white,
height: 1.2,
),
),
),
结果如下所示:
查看此链接:我知道我必须使用灵活的容器。但我无法用我的代码复制他的解决方案。我得到的
位置参数太多
错误。任何指点都会令人惊奇。
constraints: BoxConstraints(
maxWidth: 250.0,
minWidth: 30.0,
),
child: Container(
color: Colors.lightBlue,
padding: EdgeInsets.all(17),
constraints: BoxConstraints(
maxWidth: 250.0,
minWidth: 30.0,
),
child: Text(
text,
style: TextStyle(
color: Colors.white,
height: 1.2,
),
),
),