在颤动中,我想要一个高度固定且宽度为100%的容器。
为此,我使用了:
Row(
children: <Widget>[
Flexible(
child: Container(
color: Colors.blue,
height: 40.0,
),
),
],
),
现在,我想将此行偏离屏幕几个像素。要做到这一点,我试图使用:
Stack(
children: <Widget>[
Positioned(
left: -5.0,
child: Row(
children: <Widget>[
Flexible(
child: Container(
color: Colors.blue,
height: 40.0,
),
),
],
),
),
],
),
这给了我错误:
在performLayout()期间抛出以下断言:RenderFlex子项具有非零flex,但传入宽度约束是无限制的。
我该如何创建这种布局效果?
尝试给出特定大小的儿童小部件。定位小部件不能具有灵活的子级大小。
所以我将屏幕宽度设置为Positioned(父窗口小部件)和高度40.你只需要给出Row中每个子节点的宽度。如果要为它们提供一些灵活的关系,请尝试在Row小部件中使用MainAxisAlignment属性。
这是我的例子。
Positioned(
width: MediaQuery.of(context).size.width,
height: 40.0,
left: -5.0,
child: Container(
color: Colors.grey,
child: Row(
children: <Widget>[
Container(
color: Colors.green,
width: MediaQuery.of(context).size.width / 3,
child: Center(
child: Text("Green")
),
),
Container(
color: Colors.pink,
width: MediaQuery.of(context).size.width / 3,
child: Center(child: Text("Pink"))
),
Container(
color: Colors.blue,
width: MediaQuery.of(context).size.width / 3,
child: Center(child: Text("Blue")),
)
],
),
),
),