注意,本文基于flutter插件:flutter_staggered_grid_view 实现flutter瀑布流布局。官方文档传送门

使用插件的原因很简单:遇到这个需求,本想着flutter组件那么多而且强大,应该会有瀑布流组件吧?结果找来找去一无所获,所以只能借助插件实现了。然后,我找到一个猴赛雷的插件:flutter_staggered_grid_view

首先看插件的使用情况:

数据说明,这个插件很靠谱,值得一撸!!!

1、安装

  flutter_staggered_grid_view: ^0.6.1

2、引入

import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';

3、使用

MasonryGridView.count(// 展示几列crossAxisCount: 3,// 元素总个数itemCount: _waterFallList.length,// 单个子元素itemBuilder: (BuildContext context, int index) => waterCard(_waterFallList[index]),// 纵向元素间距mainAxisSpacing: 10,// 横向元素间距crossAxisSpacing: 10,//本身不滚动,让外面的singlescrollview来滚动physics:const NeverScrollableScrollPhysics(), shrinkWrap: true, //收缩,让元素宽度自适应),

完整代码:

import 'dart:math';import 'package:flutter/material.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';class OrderPage extends StatefulWidget {@override_OrderPageState createState() => _OrderPageState();
}class _OrderPageState extends State<OrderPage> {List _waterFallList = [];@overridevoid initState() {// TODO: implement initStatesuper.initState();var randomNum = new Random();for(var i=0;i<40;i++){_waterFallList.add(50+150*randomNum.nextDouble());}print(_waterFallList);}@overrideWidget build(BuildContext context) {return SingleChildScrollView(child: Container(padding: EdgeInsets.all(10),child: MasonryGridView.count(// 展示几列crossAxisCount: 3,// 元素总个数itemCount: _waterFallList.length,// 单个子元素itemBuilder: (BuildContext context, int index) => waterCard(_waterFallList[index]),// 纵向元素间距mainAxisSpacing: 10,// 横向元素间距crossAxisSpacing: 10,//本身不滚动,让外面的singlescrollview来滚动physics:const NeverScrollableScrollPhysics(), shrinkWrap: true, //收缩,让元素宽度自适应),),);}Widget waterCard(double item){return Container(height: item,decoration: BoxDecoration(border:Border.all(color:Colors.yellow,width:1),borderRadius: BorderRadius.circular(10)),child: Center(child: Text(item.toStringAsFixed(0)),),);}
}

效果图展示:

总结:这里只是一个简单的demo,感兴趣的可以去官网(传送门)细看哈。实现效果来说还是非常不错的,完美~。flutter真是越用越香哈哈哈哈哈哈哈哈哈

flutter实现瀑布流布局相关推荐

  1. 如何使用Flutter创建一个瀑布流布局的应用?

    前言 本文着眼于搭建一个瀑布流布局的简化版Flutter应用,Joe大叔将从应用创建.插件引入.页面布局三个方面,给朋友们展示瀑布流的布局方式.既此,我们接着往下看.文末有GitHub项目地址 一.瀑 ...

  2. Flutter 瀑布流布局(根据图片高度展示)

    Flutter瀑布流布局,根据后端返回的阿里云上的图片宽高信息来计算决定布局的数据信息 效果: 代码: // 模拟数据var listData = [{'img':'https://img11.360 ...

  3. JavaScript——基本的瀑布流布局及ajax动态新增数据

    本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能. 缺点: 1. 程序不是响应式,不能实时调整页面宽度: 2. 程序中当新增ajax ...

  4. 【Android 应用开发】UI绘制流程 ( 生命周期机制 | 布局加载机制 | UI 绘制流程 | 布局测量 | 布局摆放 | 组件绘制 | 瀑布流布局案例 )

    文章目录 一. 博客相关资料 及 下载地址 1. 代码查看方法 ( ① 直接获取代码 | ② JAR 包替换 ) 2. 本博客涉及到的源码查看说明 二. Activity 生命周期回调机制 1. An ...

  5. jquery瀑布流布局和鼠标滚动加载

    jquery部分: //引入JQ库(版本不同会有差别) <script src="https://cdn.bootcss.com.jquery/2.1.1/jquery.min.js& ...

  6. RecyclerView控件实现横向滚动和瀑布流布局,以及RecyclerView的点击监听(项目已上传GitHub)

    先附上我的GitHub项目地址: https://github.com/Skymqq/RecyclerViewTest.git 我们已经知道,ListView的拓展性不好,它只能实现纵向的滚动的效果, ...

  7. swift瀑布流实现_CSS 实现瀑布流布局(display: flex)

    作者 | chokcoco 本例使用 CSS flex 实现瀑布流布局. 关键点,横向 flex 布局嵌套多列纵向 flex 布局,使用了 vw 进行自适应缩放. 代码如下: HTML: // pug ...

  8. 使用css3实现瀑布流布局效果

    使用CSS3可以轻松实现瀑布流布局,但这种方法有个缺点,就是对于商城类型的网站,价格筛选时,并不能达到理想效果. 1.column-count 把div中的文本分为多少列 2.column-width ...

  9. axios如何在nodejs项目里封装_【面经】jq 中 ajax 和 axios 区别,瀑布流布局,添加删除事件...

    [jq 中 ajax 和 axios 区别] jq的ajax 1.本身是针对MVC的编程,不符合现在前端MVVM的浪潮 2.JQuery整个项目太大,单纯使用ajax却要引入整个JQuery不合理 a ...

最新文章

  1. 加载Loader.bin
  2. Blackberry阻碍因素
  3. Linux下的iwpriv(iwlist、iwconfig)的简单应用
  4. 数据库视频(二)——增删改查
  5. 重装上阵怎么造简便机器人_重装上阵怎么造厉害的机器人?新人必看的干货组装教学[多图]...
  6. TOP命令监视系统任务及掩码umask的作用
  7. putty的的颜色配置步骤
  8. Centos YUM国内163源
  9. mysql可视化创建外键说明_关于使用可视化图形工具navicat for mysql来创建外键的步骤...
  10. 线性代数第6章答案(仅供参考!!!)
  11. 微信公众号迁移时同一个公司两个微信号公证问题
  12. 虾皮的发货模式是什么?怎么发货?
  13. git cherry-pick使用总结
  14. 屏蔽百度搜索右边的热点和广告推广
  15. IDEA 在debug 模式下启动tomcat报错:Application Server was not ..reason:Unable to ping server at localhos:1199
  16. 在word中10秒一键将900个mathtype公式转换成word自带公式--GrindEQ公式转换神器
  17. 苹果8a1660是什么版本_苹果A1660是什么型号?
  18. 计算机音乐我还是曾经那个少年,我还是曾经的那个少年什么歌曲?是谁唱的?求科普!...
  19. SonicWALL 防火墙配置步骤
  20. 解决复杂问题方法-分治

热门文章

  1. 浙江大学计算机专业夏令营,浙江大学计算机科学与技术学院数字化艺术与设计保研夏令营...
  2. java.lang.OutOfMemoryError: GC overhead limit exceeded解决办法
  3. Moodle平台界面的修改
  4. 垃圾邮件过滤python_手把手教你用 python 和 scikit-learn 实现垃圾邮件过滤
  5. 同期对比图_Excel展示两组同期数据,这种左右对比图真好看,只需六步搞定
  6. 微信小程序 本地存储
  7. 盈亏计算html,外汇盈亏计算方法
  8. 通达信目录文件结构及说明
  9. PNAS | 香港理工李向东等揭示全球空气细菌群落与地球微生物组和人类活动的互作...
  10. 18.5.30集训阶段性小结