Как использовать FirestoreAnimatedList в SliverChildListDelegate? - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь использовать SliverList для рендеринга данных из бэкэнда (Firestore) в списке.Но я получаю сообщение об ошибке:

При создании NotificationListener было выдвинуто следующее утверждение: Неправильное использование ParentDataWidget.

Гибкие виджеты должны быть размещены внутри виджетов Flex.Гибкий (без глубины, гибкий: 1, грязный) не имеет предка Flex вообще.Цепочка владения для родителя нарушителя Гибкая была: RepaintBoundary ← IndexedSemantics ← NotificationListener ← KeepAlive ← AutomaticKeepAlive ← KeyedSubtree ← SliverList ← Вьюпорт ← IgnorePointer- [GlobalKey # 1e502] ← Семантика ← ⋯

1009* Но если я удаляю Flexible, это выдает ошибку:

Следующее утверждение было брошено во время executeResize (): вертикальная область просмотра получила неограниченную высоту.

Окна просмотра расширяются в направлении прокруткизаполнить их контейнер. В этом случае вертикальному окну просмотра было предоставлено неограниченное количество вертикального пространства для расширения.Такая ситуация обычно возникает, когда прокручиваемый виджет вложен в другой прокручиваемый виджет.Если этот виджет всегда вложен в прокручиваемый виджет, нет необходимости использовать область просмотра, потому что для детей всегда будет достаточно вертикального пространства.В этом случае рассмотрите возможность использования столбца.В противном случае рассмотрите возможность использования свойства «shrinkWrap» (или ShrinkWrappingViewport), чтобы изменить размер окна просмотра до суммы высот его дочерних элементов.Созданный пользователем предок вызывающего ошибки виджета был: FirestoreAnimatedList

Если я заменил FirestoreAnimatedlist на Placeholder(), то проблем не было:

          new CustomScrollView(
                  slivers: <Widget>[              
                    SliverList(
                      delegate: SliverChildListDelegate([
                        Placeholder(),
        Placeholder(),
        Placeholder(),

Как я могу решить?

Спасибо всем!

...