Flutter 流式布局组件

简述

类似于Android中的FlexboxLayout布局。

Wrap

spacing: 主轴间距。runSpacing: 纵轴间距。direction: 布局方向。alignment: 主轴对齐方式。- Axis.horizonta:水平方向。- Axis.vertical:垂直方向。alignment:主轴堆起方式。crossAxisAlignment: 纵轴对齐方式。runAlignment :纵轴方向,每一行的对齐方式

Wrap(//主轴间距spacing: 8,//纵轴间距runSpacing: 4,//布局方向direction: Axis.horizontal,children: List.generate(13,(index) {double w = 50.0 + 10 * index;return Container(width: w,height: 50,color: Colors.red,alignment: Alignment.center,child: Text("$index"),);},),
)

Flow

Flow相比Wrap更加复杂,一般情况优先使用Wrap,如果需要一些自定义布局或性能要求高时可以使用Flow。

Flow(delegate: MyFlowDelegate(margin: const EdgeInsets.all(10)),children: List.generate(13,(index) {double w = 50.0 + 10 * index;return Container(width: w,height: 50,color: Colors.red,alignment: Alignment.center,child: Text("$index"),);},),
)
class MyFlowDelegate extends FlowDelegate {EdgeInsets margin;double width = 0;double height = 0;MyFlowDelegate({this.margin = EdgeInsets.zero});@overridevoid paintChildren(FlowPaintingContext context) {var x = margin.left;var y = margin.top;for (int i = 0; i < context.childCount; i++) {var width = context.getChildSize(i)!.width + x + margin.right;if (width < context.size.width) {context.paintChild(i, transform: Matrix4.translationValues(x, y, 0));x = width + margin.left;} else {x = margin.left;y += context.getChildSize(i)!.height + margin.top + margin.bottom;context.paintChild(i, transform: Matrix4.translationValues(x, y, 0));x += context.getChildSize(i)!.width + margin.left + margin.right;}}}@overridebool shouldRepaint(covariant FlowDelegate oldDelegate) {return this != oldDelegate;}@overrideSize getSize(BoxConstraints constraints) {return const Size(double.infinity, 200);}
}

Flutter 流式布局组件相关推荐

  1. Flutter 流式布局、自动换行(Wrap、Flow)

    文章目录 流式布局 Wrap Flow 流式布局 流式布局在移动端是非常常见的,比如商品列表,瀑布流.标签页等等.使用Android原生来实现流式布局还是有点麻烦的,甚至需要自定义view或者使用第三 ...

  2. 第 2-3 课:流式布局组件详解(Flow、Wrap)

    这节课将继续讲解 Flutter 的常用组件中的布局使用的组件,本节课主要讲解 Flutter 里的流式布局(或者瀑布)组件的用法.在 Flutter 中主要通过 Flow 和 Wrap 组件来实现流 ...

  3. Flutter流式布局

    Row(children: <Widget>[Text("大帅哥"*100),],), 如果子widget超出屏幕范围,则会报溢出错误.这是因为Row默认只有一行,如果 ...

  4. Flutter 流式布局之Wrap详解

    Wrap Wrap可以为子控件进行水平或者垂直方向布局,且当空间用完时,Wrap会自动换行,也是常说的流式​布局. 创建多个子控件做为Wrap的子控件,代码如下: <span style=&qu ...

  5. Flutter流式布局Wrap使用详解

    目录 先看Wrap相关属性 direction alignment spacing与runSpacing runAlignment crossAxisAlignment verticalDirecti ...

  6. Java | 布局界面之FlowLayout布局(流式布局)

    Java的布局中最为简单的便是FlowLayout流式布局 组件按照设置对齐方式从左向右排列,一行排满到下一行继续排列 详细代码请去https://blog.csdn.net/lovemy_baby/ ...

  7. Swing布局管理器--流式布局管理器

    流式布局管理器 FlowLayout流式布局管理器,是JPanel和JApplet的默认布局管理 FlowLayout会将组件从上到下,从左到右的放置规律逐渐进行定位,直到占据这一行所在的空间,才会向 ...

  8. flowlayout java_Java图形化界面设计——布局管理器之FlowLayout(流式布局)

    前文讲解了JFrame.JPanel,其中已经涉及到了空布局的使用.Java虽然可以以像素为单位对组件进行精确的定位,但是其在不同的系统中将会有一定的显示差异,使得显示效果不尽相同,为此java提供了 ...

  9. 46、Flutter之 布局组件 流式布局Wrap,Flow

    Row 和 Colum 如果子 widget 超出屏幕范围,则会报溢出错误,如: Row(children: <Widget>[Text("xxx"*100)], ); ...

最新文章

  1. excel字段自动java类,Java 接口自动化系列--工具类之Excel测试数据解析封装
  2. python条形图间距-python matplotlib做对比条形图
  3. SQL错误提示档案(3):SQL Server连接中的四个最常见错误
  4. Android平台上使用属性系统(property system)
  5. (*长期更新)软考网络工程师学习笔记——Section 14 Linux服务器配置
  6. Buildroot构建指南——Linux内核
  7. (转)三层相关案例(及常见的错误)
  8. 电脑鸿蒙运行Linux程序,Linux下的Hi3861一站式鸿蒙开发烧录(附工具)-鸿蒙开发烧录工具软件电脑版-东坡下载...
  9. maven 项目上传私服pom配置
  10. 剑指 Offer 55 - I. 二叉树的深度
  11. 几个 h5页面效果和 自动 app 生成网站 微页
  12. hdu 4908 BestCoder Sequence
  13. xmlObj转为数组
  14. 扇贝有道180628每日一句
  15. yacc 简易计算机规则,Lex Yacc 学习笔记(2)- 简单计算器
  16. 教你一键如何更换证件照底色?
  17. du_Welch_cov_burg 功率谱估计 matlab
  18. 【LeetCode每日一题】【2021/12/8】689. 三个无重叠子数组的最大和
  19. 如何获取到javasript链接的网址
  20. 【测试】测试人员部署测试环境是什么意思

热门文章

  1. python定时关机可视化窗口
  2. 南京林业大学与华为正式签署战略合作协议
  3. cad哪个版本最好用?转换软件说明
  4. Sublime和iTerm中使用FiraCode编程连字等宽字体的配置
  5. 基于深度学习的天气识别算法对比研究-TensorFlow实现-卷积神经网络(CNN) | 第1例(内附源码+数据)
  6. warp-ctc源码安装
  7. SE2565T-R 2.4 GHz高功率无线LAN功率放大器SKYWORKS
  8. NanoPC-T4|Android-Q Mali-T860 GPU驱动
  9. 关于AnyChat录像解决方案的几张原理图
  10. 三路测径仪同时测量三根铜丝的外径