我想创建一个基本格式的单元格:
Widget build(BuildContext context) {
return new Container(
decoration: new BoxDecoration(border: new Border.all(width: 2.0)),
child: new Row(
children: <Widget>[
new Container(
width: 80.0,
child: new Column(
children: <Widget>[
new Container(color: Colors.red, height: 10.0),
new Container(color: Colors.blue, height: 50.0,),
// new Expanded(
// child: new Container(color: Colors.amber),
// )
],
),
),
new Expanded(
child: new Padding(
padding: new EdgeInsets.all(20.0),
child: new Text(widget.message)
)
)
],
),
);
}
我有以下代码来执行此操作:
web.config
但是我从Flutter中得到以下错误: RenderFlex子项具有非零flex,但传入高度约束是无限制的。
有没有办法在最左边的列中最后一次扩展占用尽可能多的空间,因为右侧和侧面的RichText的大小?
答案 0 :(得分:1)
我猜你希望你的list元素具有尽可能小的高度,同时拥有一个占用Column
剩余空间的元素。
由于IntrinsicHeight
小部件
该小部件确保它的孩子将采用尽可能小的高度,而不是填满屏幕。
=&GT;将您的Row
包裹在IntrinsicHeight
窗口小部件中,它现在可以正常工作。
最终结果将是:
new Container(
decoration: new BoxDecoration(border: new Border.all(width: 2.0)),
child: new IntrinsicHeight(
child: new Row(
children: <Widget>[
new Container(
width: 80.0,
child: new Column(
children: <Widget>[
new Container(color: Colors.red, height: 10.0),
new Container(
color: Colors.blue,
height: 50.0,
),
new Expanded(
child: new Container(color: Colors.amber),
)
],
),
),
new Expanded(
child: new Padding(
padding: new EdgeInsets.all(20.0),
child: new Text("hello\n\n\n\n\n\nworld"),
),
)
],
),
),
),
答案 1 :(得分:0)
可能没有什么问题,但没有最小的工作示例,我无法确定。
这一点可以在列中:正确的一个不是必需的,您可以将RichText
溢出到新行并根据需要自行扩展(如果您想要,请考虑SingleChildScrollView
保持行高度固定);左边的人需要以某种方式绑定。你几乎没有选择:
Container
固定高度Column
严格包含mainAxisSize: MainAxisSize.min
干杯