温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

flutter中怎么实现一个轮播图效果

发布时间:2021-08-07 14:53:40 来源:亿速云 阅读:311 作者:Leah 栏目:编程语言

这篇文章给大家介绍flutter中怎么实现一个轮播图效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1 添加依赖库

flutter_swiper: ^1.0.6

2 普通常用 圆点指示器自动轮播图

class SwiperViewDefaultPage extends StatefulWidget { @override State<StatefulWidget> createState() {  return new SwiperViewDefaultPageState(); }}class SwiperViewDefaultPageState  extends BaseAppBarPageState<SwiperViewDefaultPage> { @override String buildInitState() {  buildBackBar("轮播图", backIcon: Icons.arrow_back_ios);  return null; } @override Widget buildWidget(BuildContext context) {  print("build --");  return new Column(   children: <Widget>[    Padding(     padding: EdgeInsets.all(10),    ),    buildStyle1(),   ],  ); } // 分页指示器 buildSwiperPagination() {  return SwiperPagination(   //指示器显示的位置   alignment: Alignment.bottomCenter, // 位置 Alignment.bottomCenter 底部中间   // 距离调整   margin: const EdgeInsets.fromLTRB(0, 0, 0, 5),   // 指示器构建   builder: DotSwiperPaginationBuilder(     // 点之间的间隔     space: 2,     // 没选中时的大小     size: 6,     // 选中时的大小     activeSize: 12,     // 没选中时的颜色     color: Colors.black54,     //选中时的颜色     activeColor: Colors.white),  ); } //banner 图 Widget buildStyle1() {  return Container(   height: 200.0,   child: new Swiper(    // 横向    scrollDirection: Axis.horizontal,    // 布局构建    itemBuilder: (BuildContext context, int index) {     return new Image.network(      "http://hbimg.b0.upaiyun.com/a3e592c653ea46adfe1809e35cd7bc58508a6cb94307-aaO54C_fw658",      fit: BoxFit.fill,     );    },    //条目个数    itemCount: 6,    // 自动翻页    autoplay: true,    // 分页指示    pagination: buildPlugin(),    //点击事件    onTap: (index) {     print(" 点击 " + index.toString());    },    // 相邻子条目视窗比例    viewportFraction: 1,    // 布局方式    //layout: SwiperLayout.STACK,    // 用户进行操作时停止自动翻页    autoplayDisableOnInteraction: true,    // 无线轮播    loop: true,    //当前条目的缩放比例    scale: 1,   ),  ); } buildPlugin() {  return SwiperPagination(); }}

3 自定圆点分页指示器 效果

//自定圆点分页指示器 buildSwiperPagination() {  // 分页指示器  return SwiperPagination(   //指示器显示的位置   alignment: Alignment.bottomCenter, // 位置 Alignment.bottomCenter 底部中间   // 距离调整   margin: const EdgeInsets.fromLTRB(0, 0, 0, 5),   // 指示器构建   builder: DotSwiperPaginationBuilder(     // 点之间的间隔     space: 2,     // 没选中时的大小     size: 6,     // 选中时的大小     activeSize: 12,     // 没选中时的颜色     color: Colors.black54,     //选中时的颜色     activeColor: Colors.white),  ); } //定义轮播图组件 Widget buildStyle1() {  return Container(   height: 200.0,   child: new Swiper(    // 横向    scrollDirection: Axis.horizontal,    // 布局构建    itemBuilder: (BuildContext context, int index) {     return new Image.network(      "http://hbimg.b0.upaiyun.com/a3e592c653ea46adfe1809e35cd7bc58508a6cb94307-aaO54C_fw658",      fit: BoxFit.fill,     );    },    //条目个数    itemCount: 6,    // 自动翻页    autoplay: true,    // 分页指示    pagination: buildSwiperPagination(),    //点击事件    onTap: (index) {     print(" 点击 " + index.toString());    },    // 视窗比例    viewportFraction: 1,    // 布局方式    //layout: SwiperLayout.STACK,    // 用户进行操作时停止自动翻页    autoplayDisableOnInteraction: true,    // 无线轮播    loop: true,    scale: 1,   ),  ); }

4 自定数字 分页指示器 效果

//自定义分页指示器 buildSwiperPagination() {  // 分页指示器  return SwiperPagination(   //指示器显示的位置   alignment: Alignment.bottomCenter, // 位置 Alignment.bottomCenter 底部中间   // 距离调整   margin: const EdgeInsets.fromLTRB(0, 0, 0, 5),   // 指示器构建   builder: FractionPaginationBuilder(     // 选中时字体大小     activeFontSize: 14,     // 字体大小     fontSize: 14,      // 字体颜色     color: Colors.red,     //选中时的颜色     activeColor: Colors.blue),  ); }

关于flutter中怎么实现一个轮播图效果就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI