【问题标题】:Flutter row overflfow with listFlutter 行溢出与列表
【发布时间】:2019-09-25 16:49:28
【问题描述】:

我有一个正在映射的列表:

List<Widget> names = post.names
          .map(
            (c) => new Padding(
                  padding: EdgeInsets.all(8),
                  child: new Text('' + c['name']),
                ),
          )
          .toList();

并显示:

new Row(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: names,
          ),

但是,如果行中的项目过多,则会向右溢出。我试图将它包装到 Expanded / Flexible 小部件,但这会导致父小部件没有高度的错误。

如果我尝试使用:

crossAxisAlignment: CrossAxisAlignment.stretch,

我明白了:

BoxConstraints forces an infinite height.

我也尝试在行内使用 Expanded,但是这是不可能的,因为我是从列表中创建子级的,这会导致错误。

如何实现同时根据项目数量垂直扩展的名单?

【问题讨论】:

  • 你试过Wrap而不是Row吗?
  • 谢谢! Wrap成功了。甚至不知道小部件的存在。放弃它作为答案,我非常乐意接受它作为解决方案。

标签: flutter


【解决方案1】:

您需要像这样使用Wrap 而不是Row

Wrap(
  children: names,
  //...
),

【讨论】:

    【解决方案2】:

    如果您希望小部件可以水平滚动,请使用列表视图并将轴设置为水平。

    但是如果你想让小部件包裹起来,那么你需要构建一个网格而不是一行。

    查看这篇文章:Flutter - Layout a Grid

    【讨论】:

    • Wrap 是要走的路,感谢@CopsOnRoad 只需将 Row 交换为 Wrap 即可。无论如何感谢您的回复!
    猜你喜欢
    • 2021-11-05
    • 2019-09-16
    • 2020-12-30
    • 2019-01-30
    • 2023-03-27
    • 2018-04-12
    • 2023-02-15
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多