我在将步进器类型从垂直更改为水平时遇到问题。
这是我的代码:
body: new ListView.builder(
itemCount: data == null ? 0 : 5,
itemBuilder: (BuildContext context, int index) {
return new Card(
//child: new Text(data[index]["title"]),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Stepper(
steps: my_steps,
type: StepperType.horizontal,
controlsBuilder: (BuildContext context,
{VoidCallback onStepContinue, VoidCallback onStepCancel}) {
return Row(
children: <Widget>[
Container(
child: null,
),
Container(
child: null,
),
],
);
},
//type: StepperType.horizontal,
),
));
},
),
取消注释类型后,出现此错误:
I / flutter(10148):渲染库引起的异常 ╞═════════════════════════════════════════════════ ════════我/扑 (10148):在performLayout()期间引发了以下断言: I / flutter(10148):RenderFlex子代的flex为非零,但传入 高度限制是无限的。 I / flutter(10148):当某列是 在没有提供有限高度限制的父母中, 例如,如果它是I / flutter(10148):在垂直滚动条中,它将 尝试沿垂直轴收缩包装其子级。设置一个 I / flutter(10148):在孩子身上弯曲(例如,使用Expanded)表示 孩子要展开以填补剩余的I /颤振(10148): 垂直方向上的空间。
答案 0 :(得分:1)
您的ListView
的高度不受限制,因此它不知道每个孩子要使用多少空间,即Stepper
。
给它一些限制,例如每个的最小高度大小,您应该没问题。
(...)
ConstrainedBox(
constraints: BoxConstraints.tightFor(height: 200.0),
child: Stepper(
steps: my_steps(),
type: StepperType.horizontal,
(...)
答案 1 :(得分:0)
您可以使用SizedBox()或Container()小部件并设置其高度
SizedBox(
height: 200,
child: Card(
//child: new Text(data[index]["title"]),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Stepper(
steps: my_steps(),
type: StepperType.horizontal,
controlsBuilder: (BuildContext context,
{VoidCallback onStepContinue, VoidCallback onStepCancel}) {
return Row(
children: <Widget>[
Container(
child: null,
),
Container(
child: null,
),
],
);
},
//type: StepperType.horizontal,
),
)),
)