【问题标题】:Flutter Horizontal ListView add lines under instead of infinite scrollFlutter Horizo​​ntal ListView下添加行而不是无限滚动
【发布时间】:2025-12-23 22:35:07
【问题描述】:

应用程序的目的是显示用户必须选择的许多按钮。不幸的是,无限滚动在这里不是一个用户友好的工具,最好不要让用户做任何不必要的动作。

因此,我需要水平 ListView 在一个屏幕内并在下方展开,添加新行。我尝试添加一个 SizedBox,但 ListView 行仍然是无限的并且会离开屏幕。

return new Scaffold(
  appBar: AppBar(
    title: Text("Test"),
  ),
  body: SizedBox(
      width: 300.0,
      child: ListView(
              scrollDirection: Axis.horizontal,
              children: _rowWidgets.toList() // these are just IconButtons
             ),
          )
      );

项目的数量可能会有所不同,我无法在所有屏幕上一致地将列表划分为子列表。

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案1】:

    您似乎需要Wrap 小部件。当然,小部件没有像 ListView 那样的水平滚动。所以你必须提供垂直滚动来显示很多按钮。

    return Scaffold(
              appBar: AppBar(
                  title: Text("Test"),
              ),
              body: Center(
                  child: Container(
                      padding: EdgeInsets.all(16.0),
                      color: Colors.green,
                      width: 300.0,
                      child: Wrap(
                          spacing: 8.0, // gap between adjacent chips
                          runSpacing: 4.0, // gap between lines
                          children: List.generate(9, (i) => item(i.toString())).toList()
                      ),
                  ),
              )
          );
    

    【讨论】:

    • 谢谢!通过一些编辑,我已经成功地展示了我想要的列表。很好的例子