Может ли Flutter эффективно размещать вложенные списки? - PullRequest
0 голосов
/ 04 января 2019

Может ли макет, подобный этому, быть достигнут и эффективно отображаться во Флаттере?

Пример:

enter image description here

Желтые и синие блоки могутоба будут около 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),
            );
          },
        );
      ],
    );
  },
);

Заранее спасибо.

...