Listview 范围误差与未来建筑商在颤振中的重新认识

Listview 范围误差与未来建筑商在颤振中的重新认识,listview,flutter,future,builder,flutter-pageview,Listview,Flutter,Future,Builder,Flutter Pageview,我有两个问题,我正在使用页面视图生成器构建我的日子 child: PageView.builder( physics: new AlwaysScrollableScrollPhysics(), itemCount: allDays.length, controller: _pageController, itemBuilder: ( context, int i

我有两个问题,我正在使用页面视图生成器构建我的日子

            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(索引):无效值:只有有效值为0:1


值得注意的是,如果列表本身存在内部错误,则加载的列表在这种情况下可能会导致类似这样的错误。一个例子是
getDateDayAPI1.getTimeApi(doctorInfo名称,widget.dayName)中可能有一个列表,它实际上抛出了一个索引错误<代码>FutureBuilder
倾向于隐藏这些错误。值得一提的是,希望能为某人节省时间值得一提的是,如果列表本身存在内部错误,则加载的列表在本例中可能会导致类似的错误。一个例子是
getDateDayAPI1.getTimeApi(doctorInfo名称,widget.dayName)中可能有一个列表,它实际上抛出了一个索引错误<代码>FutureBuilder
倾向于隐藏这些错误。值得一提,希望能节省一些时间