Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振能有效地布局嵌套列表吗?_Flutter_Flutter Layout_Flutter Sliver - Fatal编程技术网

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

Flutter 颤振能有效地布局嵌套列表吗?,flutter,flutter-layout,flutter-sliver,Flutter,Flutter Layout,Flutter Sliver,这样的布局能在颤振中有效实现和渲染吗 例如: 黄色和蓝色块都可以包含大约30个元素,所以我想应该使用类似ListView.builder的内容 我尝试过嵌套2 ListView.builder,其内部为shrinkWrap=true。黄色块是在需要时生成的,但是蓝色列表虽然有一个itemBuilder,但它一次生成所有子元素,从而导致性能问题 new ListView.builder( itemCount: 20, itemBuilder: (BuildContext context,

这样的布局能在颤振中有效实现和渲染吗

例如:

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

我尝试过嵌套2 ListView.builder,其内部为shrinkWrap=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),
            );
          },
        );
      ],
    );
  },
);

提前感谢。

请发布演示您尝试的代码。@GünterZöchbauer更新了问题我想需要构建内部列表以获得外部列表的大小。但我不知道如何修复。我也有这种怀疑。如果是这样的话,这是一个bug还是预期的行为?可能有一些特性可以改善行为,我不知道。我对布局的知识不深。我认为可以创建一个颤振bug报告/功能请求。请确保使用完整但最小的单文件复制粘贴复制创建它。