#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)), ), ), ),