Flutter 如何将ClipRect中的容器调整为子文本大小

Flutter 如何将ClipRect中的容器调整为子文本大小,flutter,flutter-layout,Flutter,Flutter Layout,因此,我有一个构建消息的小部件(想象一个典型的WhatsApp消息对话框,或者人们可以称之为消息气泡) 现在,这里的问题是,我现在拥有的子容器有一个固定的宽度,由以下因素决定: width:MediaQuery.of(context).size.width*0.3, 这是有问题的,因为它本质上并不环绕文本。相反,对于诸如hi或hello之类的小文本,聊天气泡过大。它确实可以正常地处理较长的文本位,但我们不能假设它总是这样 因此,您能否建议我如何最好地实现此媒体查询,使宽度的最大值设置为width

因此,我有一个构建消息的小部件(想象一个典型的WhatsApp消息对话框,或者人们可以称之为消息气泡)

现在,这里的问题是,我现在拥有的子容器有一个固定的宽度,由以下因素决定:

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,
                ),
              ),
            ),