前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter中使用第三方轮播图插件

Flutter中使用第三方轮播图插件

作者头像
越陌度阡
发布2021-01-05 14:37:43
1.4K0
发布2021-01-05 14:37:43
举报

1. 安装插件

配置flutter_swiper。

代码语言:javascript
复制
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  date_format: ^1.0.6
  flutter_cupertino_date_picker: ^1.0.26+2 

  # 配置轮播图插件
  flutter_swiper: ^1.1.6

在pubspec.yaml中配置保存后,在VS Code环境中会自动下载依赖包。

如果无法正常下载,执行 flutter pub get 。

2. 引入依赖

在需要用到的该插件文件中引入插件包。

代码语言:javascript
复制
import 'package:flutter_swiper/flutter_swiper.dart';

3. 使用插件

代码语言:javascript
复制
List<Map> imageList = [
    {
        "url":"http://www.itying.com/images/flutter/1.png"
    },
    {
        "url":"http://www.itying.com/images/flutter/2.png"
    },
    {
        "url":"http://www.itying.com/images/flutter/3.png"
    },
    {
        "url":"http://www.itying.com/images/flutter/4.png"
    }
];

new Swiper(
    itemBuilder: (BuildContext context,int index){
        // 配置图片地址
        return new Image.network(imageList[index]["url"],fit: BoxFit.fill,);
    },
    // 配置图片数量
    itemCount: imageList.length ,
    // 底部分页器
    pagination: new SwiperPagination(),
    // 左右箭头
    control: new SwiperControl(),
    // 无限循环
    loop: true,
    // 自动轮播
    autoplay: true,
),  

4. 完整示例

代码语言:javascript
复制
import 'package:flutter/material.dart';

// 引入轮播图插件
import 'package:flutter_swiper/flutter_swiper.dart';


class SwiperPage extends StatefulWidget {
    SwiperPage({Key key}) : super(key: key);
    @override
    _SwiperPageState createState() => _SwiperPageState();
}

class _SwiperPageState extends State<SwiperPage> {

    // 轮播图片
List<Map> imageList = [
    {
        "url":"http://www.itying.com/images/flutter/1.png"
    },
    {
        "url":"http://www.itying.com/images/flutter/2.png"
    },
    {
        "url":"http://www.itying.com/images/flutter/3.png"
    },
    {
        "url":"http://www.itying.com/images/flutter/4.png"
    }
];
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(title: Text("Swiper")),
            body:Column(
                children:<Widget>[
                    Container(
                        width: double.infinity,
                        child: AspectRatio(
                            // 配置宽高比
                            aspectRatio: 16/9,
                            child: new Swiper(
                                itemBuilder: (BuildContext context,int index){
                                    // 配置图片地址
                                    return new Image.network(imageList[index]["url"],fit: BoxFit.fill,);
                                },
                                // 配置图片数量
                                itemCount: imageList.length ,
                                // 底部分页器
                                pagination: new SwiperPagination(),
                                // 左右箭头
                                control: new SwiperControl(),
                                // 无限循环
                                loop: true,
                                // 自动轮播
                                autoplay: true,
                            ),  
                        ),
                    )
                ]
            )
        );
    }
}

效果图如下:

实现一个扇形轮播图,代码如下:

代码语言:javascript
复制
import 'package:flutter/material.dart';

// 引入轮播图插件
import 'package:flutter_swiper/flutter_swiper.dart';


class SwiperPage extends StatefulWidget {
    SwiperPage({Key key}) : super(key: key);
    @override
    _SwiperPageState createState() => _SwiperPageState();
}

class _SwiperPageState extends State<SwiperPage> {

    // 轮播图片
    List<Map> imageList = [
        {
            "url":"http://www.itying.com/images/flutter/1.png"
        },
        {
            "url":"http://www.itying.com/images/flutter/2.png"
        },
        {
            "url":"http://www.itying.com/images/flutter/3.png"
        },
        {
            "url":"http://www.itying.com/images/flutter/4.png"
        }
    ];
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(title: Text("Swiper")),
            body:Column(
                children:<Widget>[
                    Container(
                        child: AspectRatio(
                            aspectRatio: 16 / 9,
                            child: new Swiper(
                                layout: SwiperLayout.CUSTOM,
                                customLayoutOption:new CustomLayoutOption(startIndex: -1, stateCount: 3).addRotate(
                                    [-45.0 / 180, 0.0, 45.0 / 180]
                                ).addTranslate(
                                    [
                                        new Offset(-370.0, -40.0),
                                        new Offset(0.0, 0.0),
                                        new Offset(370.0, -40.0)
                                    ]
                                ),
                                itemWidth: 300.0,
                                itemHeight: 200.0,
                                itemBuilder: (context, index) {
                                    return new Container(
                                        child: new Center(
                                            // 配置图片地址
                                            child: Image.network(imageList[index]['url'],fit: BoxFit.contain,)
                                        ),
                                    );
                                },
                                // 配置图片数量
                                itemCount: imageList.length
                            ),
                        ),
                    )
                ]
            )
        );
    }
}

效果图如下:

参考:https://github.com/best-flutter/flutter_swiper

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装插件
  • 2. 引入依赖
  • 3. 使用插件
  • 4. 完整示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档