使用了flutter一段时间,越来越喜欢flutter了,flutter比我们想象中的强大。这篇文章介绍了怎么使用flutter来展示一个很漂亮的list,先看下效果图。

样式还是很漂亮的,下面我们一步一步完成这个小项目。

开发前准备

  • 我们会用到加载网络图片FadeInImage这么个widget,需要一个loading的icon,所以需要在pubspec.yaml里配置下静态资源,只有配置过的静态资源才可以在项目中使用
assets:
   - assets/images/
复制代码
  • 需要mock一些假数据和一些常用的常量,所以专门建了个constant.dart来管理
    colors  # 颜色data  # list的数据# ...
复制代码

appBar部分

  • appBar需要透明的背景这样才能将后面的图片展示出来,看起来很像沉浸式。
  • 需要将elevations设置为0,这样就可以取消安卓特有的阴影效果,下面是代码:
Scaffold(appBar: AppBar(backgroundColor: Colors.transparent,elevation: 0,title: Text('flutter awesome list',style: TextStyle(color: Colors.white,),),),body: HomeBody(),
);
复制代码

Banner部分

  • 我们需要使用Transform.translate()这个weidget来将Banner部分向上移动,让appBar全部展示在banner上面,这里给的offset为offset: Offset(0, -56),56为appBar的高度
  • 下面的斜切造型需要使用ClipPath()来完成,用法有点像canvas,代码如下:
class MyClipper extends CustomClipper<Path> {@overridePath getClip(Size size) {Path p = Path();p.lineTo(size.width, 0.0);p.lineTo(size.width, size.height / 4.75);p.lineTo(0.0, size.height / 3.75);p.close();return p;}@overridebool shouldReclip(CustomClipper oldClipper) {return true;}
}
复制代码
  • 用户信息的展示用的widget是ListTile和CircleAvatar,用法也比较简单,我直接贴代码了:
ListTile(leading: CircleAvatar(backgroundImage: NetworkImage(CONSTANT.userAvatar),),title: Text(CONSTANT.userName,style: CONSTANT.defaultTextStyle,textScaleFactor: 1.5,),subtitle: Text(CONSTANT.userProfile,style: CONSTANT.defaultTextStyle,),
)
复制代码

列表展示部分

  • 列表的展示使用的是ListView.builder(),两个必传参数itemCount和itemBuilder,前者控制列表的数量,后者控制item的展示,因为item的样式还是比较多的,所以抽离成单独的StatelessWidget组件:AwesomeListItem
  • 我们用InkWell组件将AwesomeListItem包裹,InkWell是flutter自带的组件,这个组件的特点是点击的时候带有水墨绽开的效果。点击item的时候,我们使用Navigator.push跳转到详情页面
  • 图片的展示,我们还是使用的FadeInImage,这种渐入效果的用户体验还是很不错的。然后再使用Hero()来包裹FadeInImage,这样能在页面跳转的时候提供图片之间的过渡动画,很是强大和炫酷
Hero(tag: index,child: FadeInImage(image: NetworkImage(data.image),fit: BoxFit.cover,placeholder: AssetImage('assets/images/loading.gif'),),
)
复制代码

详情页面

最后就是详情页面的展示,这个页面并没有写什么样式,展示了从列表页跳转过来时,图片的过渡效果,有兴趣的同学可以丰富下页面的样式和内容

结尾

  • 博客文章地址
  • 文章中没有张贴全部代码,感兴趣的同学可以看下源码xch1029/awesomelist
  • 颜色生成工具 来自这里
  • 图片 来自这里
  • 受启发于 FlutterAwesomeList

转载于:https://juejin.im/post/5d0203ca5188256aa76bc38e

使用flutter打造炫酷的list相关推荐

  1. c++语言表白超炫图形_教你用C语言加图形库打造炫酷表白连连看

    图1 今天小编用简单的C语言知识写一个连连看的游戏,但是是有含义的哈,游戏玩完之后又是属于一个表白程序,也感觉不错的哦. 下面小编把全部的代码发出来一下,以及效果图发一下,最终的话把涉及的知识点也讲解 ...

  2. 打造炫酷通用的ViewPager指示器 Adapter模式适配所有 1

    ###1.概述 上一期我们已经写了一篇 打造炫酷通用的ViewPager指示器 - 玩转字体变色 可是这种效果虽然绚烂可以装装A和C之间,但是在实际的大多数效果中并不常见,只是在内涵段子中有这个效果而 ...

  3. 用devc++表白_教你用C语言加图形库打造炫酷表白连连看

    图1 今天小编用简单的C语言知识写一个连连看的游戏,但是是有含义的哈,游戏玩完之后又是属于一个表白程序,也感觉不错的哦. 下面小编把全部的代码发出来一下,以及效果图发一下,最终的话把涉及的知识点也讲解 ...

  4. android 打造炫酷导航栏(仿UC头条)

    年后开始上班甚是清闲,所以想捣鼓一些东西.在翻阅大神杰作Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI 的时候看到下面有一条评论说,如果导航栏能滑动就更好了. ...

  5. 打造炫酷的Proxmox VE 监控界面

    打造炫酷的Proxmox VE 监控界面 今天终于把Proxmox VE(简称PVE)从6.1版本升级到PVE 6.4版本,在Web管理后台对比PVE 6.4与 PVE 6.1,看新增哪些功能?在数据 ...

  6. 怎样用C语言打造炫酷的图形编程

    原文地址: 怎样打造炫酷的图形编程  https://www.toutiao.com/i6400951971158688258/ 怎样打造炫酷的图形编程 C语言小白入门到大神 2017-03-24 1 ...

  7. 【元壤教育AI提示工程】Midjourney神器助力,设计小白3分钟轻松打造炫酷海报!

    前言 关注「元壤教育」公众号,系统学习更多AIGC课程. 看完这篇实操教程,设计师该领盒饭了,哈哈,开个玩笑,各位老板看着办. 本教程针对完全没有设计基础的老板们,手把手教你3分钟利用Midjourn ...

  8. 手把手教你用Flutter做炫酷动画

    导读:随着技术的发展,很多网页开发技术都带有动画效果,比如淡入淡出.渐变.变大变小,等等.Flutter中的动画效果可以用酷炫来形容,这也是Flutter的一大特色.现代的应用程序不仅仅需要程序稳定. ...

  9. macos 字体_巧用 iTerm2 zsh oh-my-zsh 打造炫酷的 MacOS 终端环境

    MacOS 系统自带的 Bash 虽然已经很强大,但是对于一些细节功能的支持并不完美,重点是对于一个颜控来说,原生 Bash 真的很丑--可塑性也不高.本文将使用 iTerm2 这款被各路大牛吹爆的 ...

最新文章

  1. 在ATS 5.3.0上测试网页加速插件ats_pagespeed
  2. 关于linux内核的wait等待事件和wakeup的核心原理
  3. 正则化极限学习机_手写逻辑回归(带l1正则)
  4. Web应用程序信息收集工具wig
  5. Steam 导入已下载好的游戏
  6. 基于oracle设计与实现,基于Oracle的高校研究生招生系统设计与实现.doc
  7. 《你的灯亮着吗》读后感1
  8. spring security:基于MongoDB的认证
  9. 树莓派安装CentOS
  10. 数据3分钟丨Snowflake获“2021 DBMS”;OceanBase社区版3.1.2正式发布
  11. vhg电路是什么意思_值得珍藏的经典模拟电路
  12. HCIE Security 单包攻击防范 备考笔记(幕布)
  13. Android 游戏开发入门 视频+源码
  14. 工作缺点和不足及措施_个人总结缺点和不足
  15. 树莓派4B系统搭建(超详细版)
  16. (附源码)计算机毕业设计SSM-志愿者管理系统
  17. 金融日 | 看金融机构数据安全建设典型案例
  18. Python的正则表达式和re模块
  19. 论文翻译(7)---Enriched Long-term Recurrent Convolutional Network for Facial Micro-Expression Recognition
  20. 交易的核心精髓是什么?

热门文章

  1. Uploadify上传图片案例
  2. H3C交换机端口镜像原理
  3. 二叉树的遍历和二叉查找树
  4. MySQL 8.0 参考手册
  5. C#基础知识---飞行棋小游戏
  6. 最快速的OpenCV安装教程
  7. 7 Win98 MS—DOS
  8. Linux系统如何更改主机名,即 [root@xxxx] 改成 [root@localhost]
  9. 自定义 MyBatis 拦截器
  10. 中国移动规范学习——4A技术要求(集中认证)