微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在颤动刷卡器中制作可重复使用的小部件?

如何解决如何在颤动刷卡器中制作可重复使用的小部件?

我试图在同一页面上使用具有不同参数的 Flutter Swiper,但是我不确定如何构建代码

我想要在多个页面中使用相同的代码我尝试了多种方法,但它不起作用。 所以我想让这个小部件可重用

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

class Animals extends StatefulWidget {
  @override
  _Animalsstate createState() => _Animalsstate();
}

class _Animalsstate extends State<Animals> {
  List images = [
    'assets/images/img/getStart.jpg','assets/images/a/a.jpg','assets/images/a/b.jpg','assets/images/a/c.jpg','assets/images/a/d.jpg','assets/images/a/e.jpg','assets/images/a/f.jpg'
  ];
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Animals'),),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: 10000,autoplay: true,pagination: SwiperPagination(),control: SwiperControl(),);
  }
}

void playaudio(index) async {
  AssetsAudioPlayer.newPlayer().open(
    Audio('assets/audio/a/a$index.mp3'),autoStart: true,loopMode: LoopMode.none,showNotification: true,);
}

解决方法

创建一个新的 dart 类并创建一个自定义小部件,您可以在应用程序中的任何地方使用它,如下所示(不要忘记在 cutom swiper 类中导入 'package:flutter/material.dart';”)

Widget customSwiper({List image }){
return 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: 10000,autoplay: true,pagination: SwiperPagination(),control: SwiperControl(),);
}

现在使用 customSwiper,就像您在应用程序的任何位置使用其他 Flutter Material 小部件一样,您可以根据需要添加参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。