【问题标题】:How to stop loop in flutter card swiper?如何停止颤动刷卡器中的循环?
【发布时间】:2021-08-03 11:17:34
【问题描述】:
  • 我制作了幻灯片学习应用,但幻灯片一直在循环播放
  • 我需要停止自动播放,直到播放结束。
  • 我正在使用card_swiper: ^1.0.2
  • 我更新我的完整代码在这里 -我也在使用 Assets 音频播放器
  • 我尝试循环:false 它不起作用
  • 提前致谢

不知道怎么用

  import 'package:assets_audio_player/assets_audio_player.dart';
import 'package:card_swiper/card_swiper.dart';
import 'package:flutter/material.dart';

class Chemistry extends StatefulWidget {
  @override
  _ChemistryState createState() => _ChemistryState();
}

class _ChemistryState extends State<Chemistry> {
  List images = [
    'assets/images/che/s.jpg',
    'assets/images/che/t.jpg',
    'assets/images/che/u.jpg',
    'assets/images/che/v.jpg',
    'assets/images/che/w.jpg',
    'assets/images/che/x.jpg',
    'assets/images/che/y.jpg',
    'assets/images/che/z.jpg',
  ];
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body:Swiper(
          itemCount: images.length,
          loop: false,
          itemBuilder: (BuildContext context, int index) {
            return Padding(
              padding: const EdgeInsets.all(27.0),
              child: Image.asset(
                images[index],
              ),
            );
          },
          indicatorLayout: PageIndicatorLayout.COLOR,
          onIndexChanged: (index) {
            playaudio(index);
          },
          autoplayDelay: 4000,
          autoplay: true,
          pagination: FractionPaginationBuilder(
              color: Colors.red, activeColor: Colors.green, fontSize: 10),
          // control: SwiperControl(),
        ),
      ),

    );
  }
}

void playaudio(index) async {
  AssetsAudioPlayer.newPlayer().open(
    Audio('assets/audio/Chemistry/a$index.mp3'),
  );
}

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies flutter-test flutter-slider


    【解决方案1】:

    您可以设置 loop: false - 禁用连续循环模式。 如果要自动播放,则设置 autoplay: true

    【讨论】:

    • 我已经尝试过这个循环:false 但它又循环了
    • 如果你想知道如何使用stopAutoplay(),那么1.你必须创建一个SwiperController。您可以像创建普通 TextEditingController 一样创建它。 2.然后通过控制器方法将控制器分配给Swiper。 3.然后你调用swiperController.stopAutoPlay();
    【解决方案2】:

    根据文档https://pub.dev/packages/card_swiper,您可以将循环属性设置为 false

     Swiper(
        itemBuilder: (BuildContext context,int index){
          return Image.network("https://via.placeholder.com/350x150",fit: BoxFit.fill,);
        },
        itemCount: 3,
        loop:false,
        pagination: SwiperPagination(),
      ),
    

    【讨论】:

    • 我已经尝试过这个循环:false 但它又循环了
    • 在文档的最后我看到'void stopAutoplay()'
    • 移除控制属性然后停止循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2014-05-30
    相关资源
    最近更新 更多