首页 > 解决方案 > 当我包装芯片列表时,如何将区域(包装区域)限制为最多 2 行?

问题描述

我有一个列表,我想在芯片中显示并在 Wrap 小部件中组织。但是,无论 list.length 是什么(或列表中单个字符串的长度),我都只想构建 Wrap 区域的 2 行。

这是我的代码:

class TagsView extends StatelessWidget {
@override
  Widget build(BuildContext context) {
    List<Widget> list = List<Widget>.from(
        {"bla1", "bla2", "bla3", "bla4", "bla5", "bla6", "bla7","bla8", "bla9", "bla10", "bla11", "bla12", "bla13", "bla14"}
            .map((tag) => Chip(
                  label: Text(
                    tag,
                  ),
                ))
            .toList());

    return Wrap(
      verticalDirection: VerticalDirection.down,
      spacing: 5.0,
      runSpacing: 10.0,
      children: list,
    );
  }
}

这是不需要的代码的示例(第一个屏幕截图是上面代码的结果)

在此处输入图像描述

在此处输入图像描述

一个好的结果将如下所示:

在此处输入图像描述

标签: flutterdart

解决方案


你可以把它放在一个容器中并限制高度。

它将始终显示前两行。

    return Container(
      height: 100,
      child: Wrap(
        verticalDirection: VerticalDirection.down,
        spacing: 5.0,
        runSpacing: 10.0,
        children: list,
      ),
    );

推荐阅读