如果宽度已填满,如何使行输入新行

时间:2019-04-22 18:41:20

标签: dart flutter

我有一个容器,其中包含一行..该行具有一组项目..我希望当行中的项目达到容器宽度的末端时..在容器内开始新的一行..

这就是现在正在尝试的内容:

Container(
                  height: 100.0,
                      child: Row(
                        children: <Widget>[
                          new Container(
                            //height: 100.0,
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.all(Radius.circular(12.0)),
                              color: Color(0xFF2CB57D),
                            ),
                            padding: EdgeInsets.only(right: 5.0, left: 5.0),
                            child: Row(
                              crossAxisAlignment: CrossAxisAlignment.center,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: <Widget>[
                                new GestureDetector(
                                  onTap: () {
                                    setState(() {
                                    });
                                  },
                                  child: Icon(
                                    CustomFont.multiplication_2,
                                    size: 11.0,
                                    color: Colors.white,
                                  ),
                                ),
                                Padding(
                                  padding: EdgeInsets.only(right: 5.0),
                                  child: Text(
                                    "hhhhhh",
                                    style: TextStyle(
                                      /*fontSize: 8.0*/ fontSize:
                                    ScreenUtil().setSp(fontSize['9'][globals.platform]),
                                        color: Colors.white),
                                  ),
                                ),
                              ],
                            ),
                          ),
                          new Container(
                            //height: 100.0,
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.all(Radius.circular(12.0)),
                              color: Color(0xFF2CB57D),
                            ),
                            padding: EdgeInsets.only(right: 5.0, left: 5.0),
                            child: Row(
                              crossAxisAlignment: CrossAxisAlignment.center,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: <Widget>[
                                new GestureDetector(
                                  onTap: () {
                                    setState(() {
                                    });
                                  },
                                  child: Icon(
                                    CustomFont.multiplication_2,
                                    size: 11.0,
                                    color: Colors.white,
                                  ),
                                ),
                                Padding(
                                  padding: EdgeInsets.only(right: 5.0),
                                  child: Text(
                                    "hhhhhh",
                                    style: TextStyle(
                                      /*fontSize: 8.0*/ fontSize:
                                    ScreenUtil().setSp(fontSize['9'][globals.platform]),
                                        color: Colors.white),
                                  ),
                                ),
                              ],
                            ),
                          ),
                          new Container(
                            //height: 100.0,
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.all(Radius.circular(12.0)),
                              color: Color(0xFF2CB57D),
                            ),
                            padding: EdgeInsets.only(right: 5.0, left: 5.0),
                            child: Row(
                              crossAxisAlignment: CrossAxisAlignment.center,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: <Widget>[
                                new GestureDetector(
                                  onTap: () {
                                    setState(() {
                                    });
                                  },
                                  child: Icon(
                                    CustomFont.multiplication_2,
                                    size: 11.0,
                                    color: Colors.white,
                                  ),
                                ),
                                Padding(
                                  padding: EdgeInsets.only(right: 5.0),
                                  child: Text(
                                    "hhhhhh",
                                    style: TextStyle(
                                      /*fontSize: 8.0*/ fontSize:
                                    ScreenUtil().setSp(fontSize['9'][globals.platform]),
                                        color: Colors.white),
                                  ),
                                ),
                              ],
                            ),
                          ),
                          new Container(
                            //height: 100.0,
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.all(Radius.circular(12.0)),
                              color: Color(0xFF2CB57D),
                            ),
                            padding: EdgeInsets.only(right: 5.0, left: 5.0),
                            child: Row(
                              crossAxisAlignment: CrossAxisAlignment.center,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: <Widget>[
                                new GestureDetector(
                                  onTap: () {
                                    setState(() {
                                    });
                                  },
                                  child: Icon(
                                    CustomFont.multiplication_2,
                                    size: 11.0,
                                    color: Colors.white,
                                  ),
                                ),
                                Padding(
                                  padding: EdgeInsets.only(right: 5.0),
                                  child: Text(
                                    "hhhhhh",
                                    style: TextStyle(
                                      /*fontSize: 8.0*/ fontSize:
                                    ScreenUtil().setSp(fontSize['9'][globals.platform]),
                                        color: Colors.white),
                                  ),
                                ),
                              ],
                            ),
                          ),
                          new Container(
                            //height: 100.0,
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.all(Radius.circular(12.0)),
                              color: Color(0xFF2CB57D),
                            ),
                            padding: EdgeInsets.only(right: 5.0, left: 5.0),
                            child: Row(
                              crossAxisAlignment: CrossAxisAlignment.center,
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: <Widget>[
                                new GestureDetector(
                                  onTap: () {
                                    setState(() {
                                    });
                                  },
                                  child: Icon(
                                    CustomFont.multiplication_2,
                                    size: 11.0,
                                    color: Colors.white,
                                  ),
                                ),
                                Padding(
                                  padding: EdgeInsets.only(right: 5.0),
                                  child: Text(
                                    "hhhhhh",
                                    style: TextStyle(
                                      /*fontSize: 8.0*/ fontSize:
                                    ScreenUtil().setSp(fontSize['9'][globals.platform]),
                                        color: Colors.white),
                                  ),
                                ),
                              ],
                            ),
                          ),
                        .......
                          ),
                        ],
                    )
                ),

这将返回以下内容:

enter image description here

我希望该行中的最后一项而不是被裁剪显示在下一行中,依此类推。

如何实现?

1 个答案:

答案 0 :(得分:0)

您应该使用Wrap Widget。

例如:

Wrap(
      runSpacing: 0,
      spacing: 5,
      children: tagsList
                    .map((tags) => Chip(
                           onDeleted: () {
                            setState(() {
                              tagsList.remove(tags);
                            });
                          },
                          deleteIcon: Icon(
                            Icons.cancel,
                            color: Colors.white,
                          ),
                          label: Container(
                              constraints: new BoxConstraints(
                                  maxWidth:
                                      MediaQuery.of(context).size.width - 70.0),
                              child: Text(
                                tags,
                                overflow: TextOverflow.ellipsis,
                                style: TextStyle(color: Colors.white),
                              )),
                          backgroundColor: ColorsHelper.skyDark(),
                        ))
                    .toList(),
              )

而tagsList是字符串列表

List<String> tagsList;