以下代码切换页面时会导致Banner快速切换
Widget _buildBanner() {
return Container(
margin: EdgeInsets.all(16.0),
height: 150,
child: Swiper(
itemBuilder: (BuildContext context, int index) {
return Container(
width: double.infinity,
height: 150,
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image.network(
Api.BASE_IP + "" + bannerData[index].newBannerPic,
fit: BoxFit.fill,
),
),
);
},
itemCount: bannerData.length,
scale: 0.8,
pagination: new SwiperPagination(
builder: DotSwiperPaginationBuilder(
color: Colors.white,
activeColor: Colors.deepOrange,
size: 8.0,
activeSize: 10.0)),
onTap: (index) {
print(index);
},
),
);
}
解决办法:
autoplay: false,
loop: false,
controller: _swiperController,
SwiperController _swiperController;
@override
void initState() {
super.initState();
_swiperController = new SwiperController();
_swiperController.startAutoplay();
}
@override
void dispose() {
_swiperController.stopAutoplay();
_swiperController.dispose();
super.dispose();
}
Widget _buildBanner() {
return Container(
margin: EdgeInsets.all(16.0),
height: 150,
child: Swiper(
itemBuilder: (BuildContext context, int index) {
return Container(
width: double.infinity,
height: 150,
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image.network(
Api.BASE_IP + "" + bannerData[index].newBannerPic,
fit: BoxFit.fill,
),
),
);
},
autoplay: false,
loop: false,
itemCount: bannerData.length,
scale: 0.8,
controller: _swiperController,
pagination: new SwiperPagination(
builder: DotSwiperPaginationBuilder(
color: Colors.white,
activeColor: Colors.deepOrange,
size: 8.0,
activeSize: 10.0)),
onTap: (index) {
print(index);
},
),
);
}