flutter 在 ListView 中放置 Flexible 我要怎么做

8 min read

我想在我的 ListView 里面放置很多大小不确定的 Flexible 我要怎么做。ListView 不能直接放置 Flexible ,Flexible 需要知道父组件约束条件。但我各个 Flexible 高度又相差很大,不想给它套 Container 固定住它的高度。

您可以尝试将每个 Flexible 包装在一个 SizedBox 中,并通过设定 SizedBox 的 height 属性来为每个子项设定高度限制。这样每个子项就可以自由地根据其内部内容来决定自己的高度,而不需要通过固定高度来实现。

示例代码如下:

ListView.builder(
  itemCount: items.length,
  itemBuilder: (BuildContext context, int index) {
    return SizedBox(
      height: 200, // 设置高度限制
      child: Flexible(
        child: // 子项内容
      ),
    );
  },
)

当然,如果您有一些特殊的需求,也可以尝试使用其他的组件,比如 Expanded、IntrinsicHeight 等来实现您的布局需求。