Flutter能有效地布局嵌套列表吗?

问题描述 投票:2回答:1

可以在Flutter中实现并有效地渲染这样的布局吗?

示例:

enter image description here

黄色和蓝色块都可以包含大约30个元素,所以我猜应该使用类似ListView.builder的东西。

我已经尝试嵌套2个ListView.builder,内部带有rinkWrap = true。黄色块仅在需要时才构建,而蓝色列表(尽管具有itemBuilder)会立即构建所有子元素,从而导致性能问题。

new ListView.builder(
  itemCount: 20,
  itemBuilder: (BuildContext context, int blockIdx) {
    print("Building block $blockIdx");
    return new Column(
      children: [
        Padding(
          child: Text("Block $blockIdx"),
          padding: EdgeInsets.all(8.0)
        ),
        ListView.builder(
          shrinkWrap: true,
          physics: ClampingScrollPhysics(),
          itemCount: 30,
          itemBuilder: (BuildContext context, int childIdx) {
            print("Building block $blockIdx child $childIdx");
            return Padding(
              child: Text("Child $childIdx"),
              padding: EdgeInsets.only(left: 20.0, right: 8.0, top: 8.0, bottom: 8.0),
            );
          },
        );
      ],
    );
  },
);

提前感谢。

flutter flutter-layout flutter-sliver
1个回答
0
投票

您是否碰巧对此主题有更新?我有点在同一问题上运行。谢谢

© www.soinside.com 2019 - 2024. All rights reserved.