Renderflex溢出-如何克服抖动?

时间:2019-10-04 08:45:19

标签: flutter dart flutter-layout

我知道我会对这个问题有很多否定的评论,但是我感到非常沮丧。 我在新的iPhone 11pro上测试了我的应用程序,现在出现很多renderflex错误。大家都知道错误日志-甚至Google也给您一些建议,例如“您是否考虑过使用Flex或Expanded parent?”

现在,对于过去的文本小部件,我使用扩展。 ..那太好了。太好了!我只是将我的文本包装在Expanded中,然后将其“包装”在文本中,使其适合其容器。

但是包装其他小部件(如行或列或singlechildscrollviews)相当于什么?

我试图将它们包装在扩展中,并且得到相同的错误消息。

我受够了。

这是一些代码的示例:

            Container(
             // width: MediaQuery.of(context).size.width,
             // height: MediaQuery.of(context).size.height,


              //TODO: checkboxes

              child: Center(
                child: Column(
                // mainAxisSize: MainAxisSize.max,
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Container(width: 200,height: 100,
                      child: Row(
                        mainAxisSize: MainAxisSize.max,
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: <Widget>[
                          checkbox(sun, days[sun]),
                          checkbox(mon, days[mon]),
                          checkbox(tue, days[tue]),
                          checkbox(wed, days[wed]),
                          checkbox(thu, days[thu]),
                          checkbox(fri, days[fri]),
                          checkbox(sat, days[sat]),

                        ],
                      ),
                    ),
                  ],
                ),
              )
          ),

1 个答案:

答案 0 :(得分:1)

方法1:使用ListView

        child: Container(
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Container(
                  width: 200,
                  height: 100,
                  child: ListView(
                    scrollDirection: Axis.horizontal,
                    children: <Widget>[
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                      SizedBox(width: 10),
                      Text("Example"),
                    ],
                  ),
                ),
              ],
            ),
          ),
         ),

enter image description here

方法2:如果要显示该孩子中的所有项目,可以使用Wrap而不是ListView