RangeError и повторный запуск будущего строителя во флаттере - PullRequest
0 голосов
/ 29 февраля 2020

У меня две проблемы, я использую конструктор просмотра страниц для построения своих дней,

            child: PageView.builder(
              physics: new AlwaysScrollableScrollPhysics(),
              itemCount: allDays.length,
              controller: _pageController,
              itemBuilder: ( context, int index) {
                return _listDay(index);
              },
            ),

каждый день содержит список времени из API,

  void initState() {
    _futureTime = getDateDayAPI1.getTimeApi(doctorInfoName, widget.dayName);
    super.initState();
    _futureTime.then((value){
      setState(() {
        _snapshotTimes.addAll(value);
      });
    });
    _future.then((data) {
      setState(() {
        _snapshot.addAll(data);
      });
    },);
  }
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: _futureTime,
        builder: (context, AsyncSnapshot snapshot){
          if (_futureTime == null){
            return Container(
              child: Center(child: loadingRing(),),
            );
          }
          else {
            return SizedBox(
              width: 150,
              height: 180,
              child: ListView.builder(
                itemCount: 6,
                itemBuilder:  (context, index) {
                  return index == 0 ? Container() : _listItem(index-1);
                },
              ),
            );
          }
        }
    );
}

первая проблема это виджет, перестраивающий его сам при прокрутке, второй раз, когда он показывает ошибку в этом изображении RangeError (index): недопустимое значение: только допустимое значение 0: 1

enter image description here

...