我有一个容器,我想以最小大小开始并增长(如果在用户添加内容时其内容增长)到最大大小,然后停止。
正确的小部件似乎是 ConstrainedBox,如下所示:
new ConstrainedBox(
constraints: new BoxConstraints(
minHeight: 35.0,
maxHeight: 60.0,
),
child: ...child with growing content (has default height 25.0)...
),
但是,这会在 maxHeight 处启动盒子。
我尝试使用 hasBoundedHeight,但似乎无法为其构造正确的语法或在文档中找到示例。
让盒子按描述工作的最佳方法是什么?
最佳答案
没有“从最大/最小尺寸开始”的概念。
问题是,ContrainedBox
只为它的子级添加约束。但最终,它并没有选择尺寸。
如果您希望您的 child 达到 minSize,那么他们必须不消耗。这意味着 not 的宽度/高度为 double.INFINITY
。事实上,double.INFINITY
是许多小部件的默认值,包括 Container
。
另一方面,DecoratedBox
等一些小部件的默认大小为 0。
这意味着这段代码:
return new ConstrainedBox(
constraints: new BoxConstraints(
minHeight: 5.0,
minWidth: 5.0,
maxHeight: 30.0,
maxWidth: 30.0,
),
child: new DecoratedBox(
decoration: new BoxDecoration(color: Colors.red),
),
);
将渲染一个 5.0*5.0 的红色方 block 。
关于dart - flutter - 创建一个从 minHeight 开始,增长到 maxHeight 的盒子的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48675781/