欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Flutter banner_view 轮播图的使用及实现代码

程序员文章站 2022-03-20 15:06:29
1、前言 实现轮播图,效果如下: 2、实现 将采用 banner_view 实现: 2.1、yaml 引入依赖 在 pubspec.yaml 声明需要引用...

1、前言

实现轮播图,效果如下:

Flutter banner_view 轮播图的使用及实现代码

2、实现

将采用 banner_view 实现:

Flutter banner_view 轮播图的使用及实现代码

2.1、yaml 引入依赖

在 pubspec.yaml 声明需要引用的库,执行命令 flutter packages get 进行拉取即可使用。

banner_view: "^1.1.2"

2.2、代码中引入依赖

 在资源库地址下方,作者提供了 banner_view 的几种展示方式。

Flutter banner_view 轮播图的使用及实现代码

import 'package:flutter/material.dart';
import 'package:banner_view/banner_view.dart';
import 'pair.dart';
import 'factory/banneritemfactory.dart';
class bannerviewpage extends statefulwidget {
 @override
 _bannerviewpagestate createstate() => new _bannerviewpagestate();
}
class _bannerviewpagestate extends state<bannerviewpage> {
 @override
 widget build(buildcontext context) {
 return new scaffold(
  body:
   new container(
   child: new column(
    children: <widget>[
    new container(
     alignment: alignment.center,
     height: 200.0,
     child: this._bannerview0(),
     padding: edgeinsets.only(bottom: 10.0),
    )
    ],
   ),
   ),
  );
 }
 /**
 * 第一种方式
 */
 bannerview _bannerview0() {
 // 盛放图片的 list
 list<pair<string, color>> param = [
  pair.create('https://p5.ssl.qhimg.com/dm/456_209_/t01f43c5849ef5f521a.jpg', colors.red[500]),
  pair.create('https://p.ssl.qhimg.com/t0171bb61911ebe8899.jpg', colors.green[500]),
  pair.create('https://p.ssl.qhimg.com/t01ee77978d3a95a3ae.jpg', colors.blue[500]),
 ];
 return new bannerview(
  banneritemfactory.banners(param),
 );
// return new bannerview(
//  banneritemfactory.banners(param),
//  indicatormargin: 10.0,
//  indicatornormal: new container(
//  width: 5.0,
//  height: 5.0,
//  decoration: new boxdecoration(
//   color: colors.green,
//   shape: boxshape.rectangle,
//  ),
//  ),
//  indicatorselected: new container(
//  width: 15.0,
//  height: 5.0,
//  decoration: new boxdecoration(
//   color: colors.black,
//   shape: boxshape.rectangle,
//   borderradius: new borderradius.all(
//   new radius.circular(5.0),
//   ),
//  ),
//  ),
//  indicatorbuilder: (context, indicator) {
//  widget cc = new container(
//   padding: new edgeinsets.symmetric(horizontal: 20.0,),
//   height: 44.0,
//   width: double.infinity,
//   color: colors.grey[300],
//   child: indicator,
//  );
//  return new opacity(
//   opacity: 0.5,
//   child: cc,
//  );
//  },
// );
 }
 /**
 * 第二种方式
 */
 bannerview _bannerview() {
 var pre = 'https://raw.githubusercontent.com/yangxiaoweihn/assets/master';
 list<pair<string, color>> param = [
  pair.create('https://raw.githubusercontent.com/yangxiaoweihn/assets/master/cars/car_0.jpg', colors.red[100]),
  pair.create('https://raw.githubusercontent.com/yangxiaoweihn/assets/master/cartoons/ct_0.jpg', colors.green[100]),
  pair.create('https://raw.githubusercontent.com/yangxiaoweihn/assets/master/pets/cat_1.jpg', colors.blue[100]),
  pair.create('https://raw.githubusercontent.com/yangxiaoweihn/assets/master/scenery/s_1.jpg', colors.yellow[100]),
  pair.create('https://raw.githubusercontent.com/yangxiaoweihn/assets/master/cartoons/ct_1.jpg', colors.red[100]),
//  pair.create('$pre/cartoons/ct_1.jpg', colors.red[100]),
 ];
 return new bannerview(
  banneritemfactory.banners(param),
  indicatormargin: 10.0,
  indicatornormal: new container(
  width: 5.0,
  height: 5.0,
  decoration: new boxdecoration(
   color: colors.green,
   shape: boxshape.rectangle,
  ),
  ),
  indicatorselected: new container(
  width: 15.0,
  height: 5.0,
  decoration: new boxdecoration(
   color: colors.black,
   shape: boxshape.rectangle,
   borderradius: new borderradius.all(
   new radius.circular(5.0),
   ),
  ),
  ),
  indicatorbuilder: (context, indicator) {
  widget cc = new container(
   padding: new edgeinsets.symmetric(horizontal: 20.0,),
   height: 44.0,
   width: double.infinity,
   color: colors.grey[300],
   child: indicator,
  );
  return new opacity(
   opacity: 0.5,
   child: cc,
  );
  },
 );
 }
}

总结

以上所述是小编给大家介绍的flutter banner_view 轮播图的使用及实现代码,希望对大家有所帮助