3

我在将步进器类型从垂直更改为水平时遇到问题。

这是我的代码:

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 /颤振(10148):══╡渲染库╞═════════════════════════════════════════════ ═══════════════════════ I/flutter (10148):在 performLayout() 期间抛出了以下断言:I/flutter (10148):RenderFlex 子级有非零 flex 但传入的高度约束是无界的。I/flutter (10148):当列在不提供有限高度约束的父级中时,例如,如果它是 I/flutter (10148):在垂直可滚动中,它将尝试收缩包裹其子级纵轴。设置 I/flutter (10148): flex on a child (例如使用 Expanded) 表示子级将展开以填充剩余的 I/flutter (10148): 垂直方向的空间。

4

2 回答 2

2

ListView的高度没有限制,因此它不知道每个孩子可以使用多少空间,即Stepper. 给它一些限制,例如每个的最小高度尺寸,你应该没问题。

 (...)
 ConstrainedBox(
              constraints: BoxConstraints.tightFor(height: 200.0),
              child: Stepper(
                steps: my_steps(),
                type: StepperType.horizontal,
 (...)
于 2019-02-25T01:11:24.433 回答
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,
            ),
          )),
    )
于 2019-02-24T21:14:22.357 回答