颤振步进器水平类型不起作用

时间:2019-02-24 20:14:55

标签: dart flutter stepper

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

这是我的代码:

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):   垂直方向上的空间。

2 个答案:

答案 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,
            ),
          )),
    )