輕松flutter之 輪播圖 flutter_swiper

這里我們需要一個(gè)第三方庫(kù):

https://pub.dev/packages/flutter_swiper#-readme-tab-

一. 安裝方法:

  1. 在根目錄pubspec.yaml文件中添加依賴
dependencies:
  flutter_swiper: ^1.1.6
  1. 如果是VS,第二步是自動(dòng)執(zhí)行的
$ flutter pub get
  1. 在想用的文件中導(dǎo)入:
import 'package:flutter_swiper/flutter_swiper.dart';

二. 輕松使用

這里總結(jié)了幾種樣式, 都很不錯(cuò),直接拿過(guò)來(lái)用就可以了

import 'package:flutter/material.dart';
import 'package:flutter_swiper/flutter_swiper.dart'; //引入這個(gè)控件

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<Image> imgs = [
    //建立了一個(gè)圖片數(shù)組
    Image.network(
      "https://images.unsplash.com/photo-1477346611705-65d1883cee1e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60",
      fit: BoxFit.cover,
    ),
    Image.network(
      "https://images.unsplash.com/photo-1498550744921-75f79806b8a7?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1050&q=80",
      fit: BoxFit.cover,
    ),
    Image.network(
      "https://images.unsplash.com/photo-1451187580459-43490279c0fa?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60",
      fit: BoxFit.cover,
    ),
  ];
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("圖片輪播"),
      ),
      body: SingleChildScrollView(
        child: Column(
          children: <Widget>[
            Text("樣式1:"),
            Container(
              height: 175,
              child: Swiper(
                itemBuilder: (BuildContext context, int index) {
                  //條目構(gòu)建函數(shù)傳入了index,根據(jù)index索引到特定圖片
                  return imgs[index];
                },
                itemCount: imgs.length,
                autoplay: true,
                pagination: new SwiperPagination(), //這些都是控件默認(rèn)寫好的,直接用
                control: new SwiperControl(),
              ),
            ),
            Text("樣式2:"),
            Container(
              height: 175,
              child: Swiper(
                itemBuilder: (BuildContext context, int index) {
                  return imgs[index];
                },
                itemCount: imgs.length,
                autoplay: true,
                pagination: new SwiperPagination(),
                control: new SwiperControl(),
                viewportFraction: 0.8,
                scale: 0.9,
              ),
            ),
            Text("樣式3:"),
            Container(
              height: 175,
              child: Swiper(
                itemBuilder: (BuildContext context, int index) {
                  return imgs[index];
                },
                itemCount: imgs.length,
                autoplay: true,
                pagination: new SwiperPagination(),
                control: new SwiperControl(),
                itemWidth: 300.0,
                layout: SwiperLayout.STACK,
              ),
            ),
            Text("樣式4:"),
            Container(
              height: 175,
              child: Swiper(
                itemBuilder: (BuildContext context, int index) {
                  return imgs[index];
                },
                itemCount: imgs.length,
                autoplay: true,
                pagination: new SwiperPagination(),
                control: new SwiperControl(),
                itemWidth: 300.0,
                itemHeight: 400.0,
                layout: SwiperLayout.TINDER,
              ),
            ),
            Text("樣式5:"),
            Container(
              height: 175,
              child: Swiper(
                itemBuilder: (BuildContext context, int index) {
                  return imgs[index];
                },
                itemCount: imgs.length,
                autoplay: true,
                pagination: new SwiperPagination(),
                control: new SwiperControl(),
                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,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

三. 常用參數(shù)

我們可以通過(guò)設(shè)置控件幫我們準(zhǔn)備好的屬性進(jìn)一步滿足我們的需求.
如果還不夠用, 還可以重寫這個(gè)控件.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末堕战,一起剝皮案震驚了整個(gè)濱河市择同,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雌桑,老刑警劉巖汇跨,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件务荆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡穷遂,警方通過(guò)查閱死者的電腦和手機(jī)函匕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蚪黑,“玉大人盅惜,你說(shuō)我怎么就攤上這事〖纱” “怎么了抒寂?”我有些...
    開(kāi)封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)掠剑。 經(jīng)常有香客問(wèn)我屈芜,道長(zhǎng),這世上最難降的妖魔是什么井佑? 我笑而不...
    開(kāi)封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮澜公,結(jié)果婚禮上姆另,老公的妹妹穿的比我還像新娘迹辐。我一直安慰自己,他們只是感情好印荔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布嘿悬。 她就那樣靜靜地躺著,像睡著了一般钢拧。 火紅的嫁衣襯著肌膚如雪源内。 梳的紋絲不亂的頭發(fā)上膜钓,一...
    開(kāi)封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天腔寡,我揣著相機(jī)與錄音放前,去河邊找鬼凭语。 笑死,一個(gè)胖子當(dāng)著我的面吹牛炒辉,可吹牛的內(nèi)容都是我干的黔寇。 我是一名探鬼主播屏轰,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼榛做,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼升敲!你這毒婦竟也來(lái)了驴党?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后吊履,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年托慨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厚棵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蕉世。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖婆硬,靈堂內(nèi)的尸體忽然破棺而出彬犯,到底是詐尸還是另有隱情向楼,我是刑警寧澤谐区,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布灭返,位于F島的核電站艇纺,受9級(jí)特大地震影響消约,放射性物質(zhì)發(fā)生泄漏肠鲫。R本人自食惡果不足惜员帮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一导饲、第九天 我趴在偏房一處隱蔽的房頂上張望渣锦。 院中可真熱鬧硝岗,春花似錦、人聲如沸袋毙。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)听盖。三九已至胀溺,卻和暖如春裂七,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仓坞。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工背零, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人无埃。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓徙瓶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親嫉称。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侦镇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355