解决 swiper 循环切换_Flutter swiper在tab切换之后快速循环

以下代码切换页面时会导致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);
        },
      ),
    );
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值