Flutter 轮播图制作(附完整代码)

10 篇文章 2 订阅
订阅专栏

首先是引入swper组件 flutter_swiper: ^1.1.6

然后自动执行了flutter packages get.

写一个Future,这个是可以用dio获取数据。简单起见,我就直接返回数据了。

import 'package:dio/dio.dart';
import 'dart:async';
import 'dart:io';
import '../config/service_url.dart';
// 获取首页主体内容

Future getHomePageContent() async {
  print('开始获取首页主体。。。。'); //最好是网络图片。
  return {
    "data": {
      "slides": [
        {
          "image":
              "http://yuddef32ef320Max.jpg" 
        },
        {
          "image":
              "http://yuebebfMax.jpg"
        },
        {
          "image":
              "http://yuefa420bee211d650Max.jpg"
        }
      ]
    }
  };
}

修改lib下的main.dart. 

import 'package:flutter/material.dart'; 
import 'pages/index_page.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: MaterialApp(
          title: '百姓生活+',
          debugShowCheckedModeBanner: false, //Flutter去除右上角Debug标签
          theme: ThemeData(primaryColor: Colors.pink),
          home: IndexPage()),
    );
  }
}

不管你愿不愿意,本例赠送了底部导航条。呵呵就是这个pages/indexPage.dart

import 'package:flutter/material.dart'; //谷歌 子墨
import 'package:flutter/cupertino.dart'; //ios 风格
import 'cart_page.dart';
import 'category_page.dart';
import 'home_page.dart';
import 'member_page.dart';

class IndexPage extends StatefulWidget {
  IndexPage({Key key}) : super(key: key);

  @override
  _IndexPageState createState() => _IndexPageState();
}

class _IndexPageState extends State<IndexPage> {
  final List<BottomNavigationBarItem> bottomTabs = [
    BottomNavigationBarItem(icon: Icon(CupertinoIcons.home), label: "首页"),
    BottomNavigationBarItem(icon: Icon(CupertinoIcons.search), label: "分类"),
    BottomNavigationBarItem(
        icon: Icon(CupertinoIcons.shopping_cart), label: "购物车"),
    BottomNavigationBarItem(
        icon: Icon(CupertinoIcons.profile_circled), label: "会员中心"),
  ];

  final List tabBodies = [HomePage(), CategoryPage(), CartPage(), MemberPage()];
  int currentIndex = 0;
  var currentPage;
  @override
  void initState() {
    // TODO: implement initState
    currentPage = tabBodies[currentIndex];
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Color.fromRGBO(244, 245, 245, 1.0),
      bottomNavigationBar: BottomNavigationBar(
        items: bottomTabs,
        type: BottomNavigationBarType.fixed,
        currentIndex: currentIndex,
        onTap: (index) {
          setState(() {
            currentIndex = index;
            currentPage = tabBodies[currentIndex];
          });
        },
      ),
      body: currentPage,
    );
  }
}

首先进来的是homePage(),其他几个page.类似,我就不贴了。轮播图只是在主页有。

import 'dart:convert';
import 'package:flutter/material.dart';
import '../service/service_method.dart';
import '../component/home_swiper.dart';

class HomePage extends StatefulWidget {
  HomePage({Key key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String homePageContent = "正在获取数据";

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Scaffold(
        appBar: AppBar(
          title: Text(homePageContent),
        ),
        body: FutureBuilder(
          future: getHomePageContent(),
          builder: (context, snapshot) {
            //这里执行了2次。  ConnectionState.wait
            if (snapshot.connectionState == ConnectionState.done) {
              print("datxxxa");
              print(snapshot.data);
              var data = snapshot.data;
              print("datxxxb");
              print(data);
              List<Map> swiper = (data['data']['slides'] as List).cast();
              print(swiper);
              return Column(
                  children: <Widget>[SwiperDiy(swiperDataList: swiper)]);
            }

            return Center(
              child: Text("等下"),
            );
            // return Column(children: <Widget>[
            //   SwiperDiy(swiperDataList)
            // ],)
          },
        ),
      ),
    );
  }
}

差点忘记还有最关键的 SwiperDiy ,这个高度应该是定死的

import 'package:flutter/material.dart';
import 'package:flutter_swiper/flutter_swiper.dart';

class SwiperDiy extends StatelessWidget {
  final List swiperDataList;
  SwiperDiy({this.swiperDataList});

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 333,
      child: Swiper(
        itemCount: swiperDataList.length,
        pagination: SwiperPagination(),
        autoplay: true,
        control: new SwiperControl(),
        itemBuilder: (BuildContext context, int index) {
          print(swiperDataList[index]['image']);
          return Image.network("${swiperDataList[index]['image']}");
        },
      ),
    );
  }
}

轮播图基本的参数有:

这里说下,如果是genyMotion,要先设置好虚拟机上网。测试能访问网络。否则会报错: flutter,OS Error: No address associated with hostname, errno = 7

欢迎大家留言。

本实例参考jspang.com

 

Flutter 3.24 中的新功能:New Slivers实现动态应用栏行为的新碎 、 Cupertino library、TableViewTreeView、轮播视图
iCloudEnd的博客
08-08 63
欢迎使用最新的 Flutter 更新!Flutter 3.24 包含许多激动人心的新功能和增强功能,可提升您的应用开发体验。此版本重点介绍了 Flutter GPU 的预览,它可直接在 Flutter 中启用高级图形和 3D 场景。Web 应用现在可以嵌入多个 Flutter 视图,从而增强应用的多功能性。最后,我们添加了视频广告获利支持,以帮助您实现收入最大化。在过去的几个月里,Flutter 社区一直非常活跃,有 852 个框架提交和 615 个引擎提交。
Flutter实现可循环轮播图效果
08-25
主要介绍了Flutter实现可循环轮播图效果,本文图文并茂通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
flutter 轮播图
yinyiYi159的博客
07-24 467
引言:记录一下flutter的学习成果,今天来写flutter实现的轮播图 1,首先添加依赖 2.使用起来很简单 Swiper( itemCount: swiperDateList.length, itemBuilder: (BuildContext context, int index) { return ClipRRect( borderRa
Flutter Swiper 开源项目教程
最新发布
gitblog_00607的博客
08-09 621
Flutter Swiper 开源项目教程 flutter_swiperThe best swiper for flutter , with multiple layouts, infinite loop. Compatible with Android & iOS.项目地址:https://gitcode.com/gh_mirrors/fl/flutter_swiper 1. 项目的目录结构及...
Flutter 自定义 轮播图的实现
O_time的博客
02-21 1979
  在 上篇文章–Flutter 实现支持上拉加载和下拉刷新的 ListView 中,我们最终实现的效果是在 listView 上面留下了一段空白,本意是用来加载轮播图的,于是今天就开发了一下,希望能给各位灵感。 一 、效果如下 说一下大体思路    其实图片展示是用的 PageView ,然后,下面的指示器 是用的 TabPageSelector ,当然整体是用 Stack 包裹起来的。 1、...
flutter实现轮播图效果
08-25
主要为大家详细介绍了flutter实现轮播图效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Flutter笔记(12)flutter中swiper实现轮播图(1)
2401_84166536的博客
04-11 1317
利用的是这个库,可以实现多样式的布局。先说说库的导入。之前的文章有提到过本地图片的加载方式,是进入到pubspec.yaml文件里添加,同时,引入三方库也是一样。在配置文件中找到箭头所指的位置,添加依赖,要记得点击导入。实现代码///好友动态-图片轮播@override// 声明一个list,存放image Widget@override));));));));@overridetitle: new Text(‘轮播图’),),),
Flutter绘制轮播图控件KqSwiper
许天成的博客
03-16 422
使用flutter纯手写轮播图组件
Flutter 封装一个 Banner 轮播图
Flutter笔记
07-24 1187
实际业务开发中,首页一般都会存在一个轮播图。在 Flutter 中,如何开发一个轮播?了解需求首先,我们在开发一个功能的时候要了解这个功能的需求,那一个轮播需要有什么功能...
Flutter智慧城市App
qq_44242204的博客
03-02 5395
前言 下面将是我使用Flutter对智慧城市APP的实现过程,尽管过程有点繁琐,但这终究只是我的一片记录学习过程的文章,如果有错误的地方,望在评论区留言,给广大的朋友们指条明路… 要求 任务 1:引导页功能模块描述: App 启动,首先进入引导页,引导页面下方显示 5 个小圆圈标识,提示用户当前引导页面位置。 进入最后引导页。 (1)显示“网络设置”按钮,点击弹出服务器 IP 地址(如192.168.1.10)和端口(如 8080)设置对话框,并实现服务器 IP 地 址和端口的保存和修改功能。 (2)显示
基于Flutter商用APP制作的10个经验教训
读芯术的博客
08-26 804
全文共4593字,预计学习时长12分钟图源:unsplash近两年来,我们花费了大量时间在Flutter框架上开发了10个商用APP,本文将分享我们的收获。本文将帮助你了解:·...
反光幻灯片:就像使用Flutter和Firebase制作的幻灯片一样反光
02-05
反光幻灯片 使用Flutter创建的受启发的幻灯片演示。 设置项目 git clone https://github.com/ReeceRose/Reflecty-Slideshow.git cd Reflecty-Slideshow flutter packages get 设置Firebase 该项目依靠Firebase加载故事。 Firebase允许我们使用流,因此故事即使不重新启动/重新加载应用程序也可以即时更新故事并看到更改。 为了使该项目正常运行,您需要按照的教程进行操作。 在您的项目Firebase仪表板中,单击“数据库”,然后选择Firestore。 添加一个名为“故事”的
Flutter轮播图效果的实现步骤
08-18
主要介绍了Flutter轮播图效果的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Flutter实现一个类似于轮播图的效果
01-07
效果图: 过程脑洞自补!!! 类似于上图的效果,我们应该能想到用PageView来实现,但是思来想去,PageView官方并没有给自定义的参数,就是我们需要的下面的指示器的效果。现在我就来说下一下怎么来实现他。 在Flutter的字典中,有一句话说的好,“万事不决Stack”好了我们就套用Stack布局来实现图片图片标题的内容嵌套。 首先我们先建立一个存放图片的类,本来想用api来,但是发现还是用代码来实现吧 class Hero { final Color color; final String image; final String title; Hero({
Flutter 轮播图 设计与实现
wenyun936的博客
05-16 382
flutter 轮播图采用 pageView 进行实现其中内置参数可以自定义图片样式以及轮播图切换样式。
flutter_url_launcher轮播图banner编写(自定义可随意在任何地方添加和删除)
wdx_1136346879的博客
04-10 487
自动无限循环,可以手动拖拽,指示器显示 首页代码,将轮播图自定义出来一个控件,直接可以添加和删除 @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text('首页') ), ...
flutter 实现轮播图
Snakehj的博客
07-20 1063
本博客使用 flutter 实现轮播图。 了解更多 源代码 ///第一个dart文件 import 'package:flutter/material.dart'; import 'package:flutter_shop/pages/index_page.dart'; ///能套一个方便的组件的话,就套一个,方便以后修改 void main() => runApp(MyApp()); ...
Flutter轮播图 flutter_swiper
独树一枝
11-17 2805
添加依赖 flutter_swiper: ^1.1.6 #轮播插件 最新版本看:https://pub.dev/packages/flutter_swiper#-readme-tab- Pub get 之后,引用 import 'package:flutter_swiper/flutter_swiper.dart'; 效果图 import 'package:flutter/material.dart'; import 'package:flutter_swiper/fl..
写文章

热门文章

  • Vue3中文文档 6268
  • vue3动态路由add-Route添加多个路由。 5521
  • SpringBoot3.0精讲笔记 5503
  • mysql8函数汇总 5399
  • 编写一个俄罗斯方块 4468

分类专栏

  • go 2篇
  • springCloud 10篇
  • Docker 3篇
  • mysql 10篇
  • adb 1篇
  • java 34篇
  • spring 50篇
  • TS 2篇
  • Vue 12篇
  • mybatis 3篇
  • wx 6篇
  • Mac 3篇
  • 哲学 2篇
  • flutter 10篇
  • linux 2篇
  • react 7篇
  • npm 2篇
  • server 1篇
  • neo4j 2篇
  • gradle 2篇
  • taro 1篇
  • python 1篇
  • hbuilderx 1篇
  • CSS 1篇
  • android 1篇
  • javascript 25篇
  • php  13篇
  • extjs 4篇

最新评论

  • SpringBoot编写一个抢红包的程序

    小老弟261: 有联系方式吗?

  • javascript编写奇迹mu原版(含服务端)(4)来到勇者大陆

    AA裕: 奇迹手游吗

  • 用Javascript编写魔方程序(完整版续)

    little_fat_sheep: 【Unity3D】魔方 https://zhyan8.blog.csdn.net/article/details/130210697

  • 用Javascript编写魔方程序(完整版续-源码)

    little_fat_sheep: 【Unity3D】魔方 https://zhyan8.blog.csdn.net/article/details/130210697

  • 用Javascript编写魔方程序(完整版)

    little_fat_sheep: 【Unity3D】魔方 https://zhyan8.blog.csdn.net/article/details/130210697

最新文章

  • 禅道docker安装
  • 安装禅道,帮助测试,测试打磨项目精度。
  • 遗传算法(Genetic Algorithm, GA)哪些步骤该丢给GPU
2024年9篇
2023年22篇
2022年32篇
2021年20篇
2020年81篇
2019年53篇
2018年1篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东宇科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家福州玻璃钢雕塑之家吉林市那家做玻璃钢花盆彭州玻璃钢造型雕塑公园玻璃钢景观雕塑定做价格吉林公园玻璃钢雕塑生产厂家惠东步行街玻璃钢雕塑淮南玻璃钢雕塑工艺品迎宾老人玻璃钢雕塑安国玻璃钢雕塑宣城商场美陈山东多彩玻璃钢雕塑温州深圳玻璃钢卡通雕塑厂家通许玻璃钢雕塑加工厂家海伦玻璃钢游乐场门头雕塑户外玻璃钢卡通雕塑价格淮北人物玻璃钢雕塑多少钱玻璃钢景观雕塑价格重庆万州玻璃钢雕塑山西太湖石校园玻璃钢景观雕塑做玻璃钢花盆的模具什么价格福建模压法玻璃钢雕塑报价玻璃钢雕塑材料视频湖南方形玻璃钢花盆普洱市玻璃钢雕塑价钱徐州玻璃钢广场雕塑价格周口锻铜玻璃钢景观雕塑成都景区玻璃钢雕塑厂家江苏大型商场美陈价格石河子园林玻璃钢雕塑内蒙古玻璃钢雕塑联系方式香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化