Список порхающих фрагментов с будущими данными Json

#flutter #flutter-sliver

#порхание #flutter-sliver

Вопрос:

Я столкнулся с проблемой, пытаясь заполнить a SliverFixedExtentList дочерними элементами из ответа API JSON. У меня есть функция _getMyListOfCustomJsonObjects() , которая возвращает a Future<'List<'CustomJsonObject>> . Я довольно новичок в flutter, но, насколько я понимаю SliverLists , они должны вести себя аналогично a ListView . Я смог заполнить один ListView из этих дочерних элементов, используя FutureBuilder и ListView.builder . Однако внесение изменений в a SliverList вызывает у меня ошибку.

Ниже приведен пример моего кода

 CustomScrollView(
   slivers: [
SliverAppBar(),
FutureBuilder(
  future: _getMyListOfCustomJsonObjects,
  builder: (BuildContext context, AsyncSnapshot snapshot) {
    if (snapshot.data != null)
      return SliverFixedExtentList(
        itemExtent: 150,
        delegate: SliverChildBuilderDelegate(
            (BuildContext context, int index) {
          return
           Container(
           color: Colors.red, 
           child: Text('${snapshot.data[index].Name}'));
        }, 
         childCount: snapshot.data.length),
      );
    else {
      return Padding(
        padding: EdgeInsets.only(top:50),
        //alignment: Alignment.center,
        child: Stack(
          alignment: Alignment.bottomCenter,
          children: <Widget>[
            new CircularProgressIndicator(
              value: null,
              strokeWidth: 4,
              backgroundColor: Color(0xFFe5ac3b),
              semanticsLabel: "Loading",
              valueColor:
                  new AlwaysStoppedAnimation<Color>(Color(0xFF12336c)),
            ),
          ],
        ),
      );
    }
  },
),
],
),
  

Я думаю, что, возможно, я близок к этому, но я впервые пытаюсь использовать Slivers, поэтому я не уверен, что мне не хватает ключевого компонента, чтобы все это работало. Ниже приведены ошибки, которые я получаю при попытке запустить этот код.

 flutter: Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 4345 pos 14: 'owner._debugCurrentBuildTarget == this': is not true. 

flutter: Another exception was thrown: Duplicate GlobalKeys detected in widget tree.
  

Любые предложения по заполнению a SliverList с Future<List<CustomJSONObject>> помощью?

Комментарии:

1. Можете ли вы предоставить всю трассировку стека? похоже, что перед теми, которые вы упомянули, есть исключение, поскольку они оба говорят «Было выдано другое исключение».

2. Хорошо — после более глубокого изучения трассировки стека я обнаружил, что именно содержимое Else {} выдавало мне ошибки, которые я получал. Чтобы исправить это, я использовал SliverFillRemaining() внутри Else{}- однако, похоже, что асинхронный снимок возвращает null . Будет ли это иметь какое-либо отношение к тому, когда создается виджет?