трепещите странным случайным движением, когда количество предметов динамично

#flutter

Вопрос:

обновленный

это дело только в том случае , если itemCount: dataBanner.length, , но если itemCount: 8 это нормально

этот обновленный код

 Listlt;ResultBannergt; dataBanner = [];  @override  void initState() {  super.initState();  refresh();  }   Futurelt;voidgt; refresh() async {  getDataBanner();  return;  }   void getDataBanner() {  dataBanner = [];  BannerViewModel().getBanner().then((value) {  if(value != "no data") {  setState(() {  dataBanner = value.result;  });  }  });  }  @override  Widget build(BuildContext context) {  return Scaffold(  body: RefreshIndicator(  onRefresh: refresh,  child: CustomScrollView(  slivers: lt;Widgetgt;[  SliverAppBar(  backgroundColor: Colors.transparent,  automaticallyImplyLeading: false,  expandedHeight: 200,  elevation: 0,  pinned: true,  flexibleSpace: FlexibleSpaceBar(  collapseMode: CollapseMode.pin,  background: Positioned(  top: 0,  height: 200,  right: 0,  left: 0,  child:Swiper(  itemBuilder: (BuildContext context,  int index) {  return new Image.network(  "http://via.placeholder.com/288x188",  fit: BoxFit.fill,  );  // itemCount: 8, // THIS CODE RUN NORMAL  itemCount: dataBanner.length // THIS CODE LIKE MY VIDEO  pagination: const SwiperPagination(  alignment: Alignment.bottomCenter,  builder: DotSwiperPaginationBuilder(  color: Colors.grey,  activeColor: Color(0xff38547C)),  ),  ),  ),  ),  ),   ]  )  )  );  }  

Я хочу показать swiper на домашней странице и странице событий

когда swiper отображается на главной странице, это нормально. но когда я перехожу на страницу событий, свайпер просто делает случайный свайп (не знаю, где остановится индекс), как в моем видео, как начать с первого индекса, когда я открываю страницу событий?

введите описание изображения здесь

код на главной странице и странице событий-это один и тот же код, только 1 код

эта часть моего кода

 Positioned(  top: bannerTop,  height: carouselHeight,  right: 0,  left: 0,  child:Swiper(  autoplay: widget.dataBanner.length==1 ? false : true,  physics: widget.dataBanner.length==1 ? const NeverScrollableScrollPhysics() : null,  autoplayDelay: widget.dataBanner.length==1 ? 0 : 10000,  itemBuilder: (BuildContext context,  int index) {  return InkWell(  child: Card(  margin: const EdgeInsets.only(left: 0, right: 0, bottom: 25),  child: (  ClipRRect(  child: (  CachedNetworkImage(  imageUrl: urlPrefixImages widget.dataBanner[index].SliderImage,  fit: BoxFit.fill,  placeholder: (context, url) =gt; Image.memory(bytes,fit: BoxFit.cover,),  errorWidget: (context, url, error) =gt; const Icon(Icons.error),  )  )  )  )  ),  );  },  itemCount: widget.dataBanner.length,  viewportFraction: 1,  scale: 1,  pagination: const SwiperPagination(  alignment: Alignment.bottomCenter,  builder: DotSwiperPaginationBuilder(  color: Colors.grey,  activeColor: Color(0xff38547C)),  ),  ),  ),