Flutter 流式布局、自动换行(Wrap、Flow)
文章目录
流式布局
Wrap
Flow
流式布局
流式布局在移动端是非常常见的,比如商品列表,瀑布流、标签页等等。使用Android原生来实现流式布局还是有点麻烦的,甚至需要自定义view或者使用第三方的库。而在Flutter中,官方为我们提供了流式布局的控件,我们可以很方便的实现流式布局。
Wrap
首先来看Wrap,Wrap是一个可以使子控件自动换行的控件,默认的方向是水平的,使用起来非常简单。
首先,对于MainAxisAlignment和CrossAxisAlignment不太熟悉的同学可以先看看下面这篇文章,讲的很详细了。
MainAxisAlignment和CrossAxisAlignment详解
构造方法
Wrap({ Key key, this.direction = Axis.horizontal, //排列方向,默认水平方向排列 this.alignment = WrapAlignment.start, //子控件在主轴上的对齐方式 this.spacing = 0.0, //主轴上子控件中间的间距 this.runAlignment = WrapAlignment.start, //子控件在交叉轴上的对齐方式 this.runSpacing = 0.0, //交叉轴上子控件之间的间距 this.crossAxisAlignment = WrapCrossAlignment.start, //交叉轴上子控件的对齐方式 this.textDirection, //textDirection水平方向上子控件的起始位置 this.verticalDirection = VerticalDirection.down, //垂直方向上子控件的其实位置 List<Widget> children = const <Widget>[], //要显示的子控件集合 }) |
下面我们就来简单的用一用:
import 'package:flutter/material.dart'; /* /*一个渐变颜色的正方形集合*/ |
Flutter中的流式布局是不是非常简单。
Flow
Flow用起来远比Wrap麻烦,但是它可以实现更加个性化的需求,我们可以通过delegate属性自己设置子控件排列规则。
构造方法
Flow({
Key key,
@required this.delegate, //布局委托,接收一个FlowDelegate类型的值
List<Widget> children = const <Widget>[], //要显示的子控件
})
1
2
3
4
5
我们主要来看看delegate属性,他接收一个FlowDelegate类型的值
FlowDelegate
FlowDelegate是一个抽象类,我们一般会重写paintChildren方法,在该方法中,我们可以来控制子控件的摆放。
import 'package:flutter/material.dart'; /* double boxSize = 80.0; class FlowWidget extends StatelessWidget { /*一个带渐变颜色的正方形*/ class MyFlowDelegate extends FlowDelegate { double padding = 5; //间距 for (int i = 0; i < context.childCount; i++) { @override |
在正常情况下,能用wrap就用wrap,实现其来比较简单,如果是比较个性化的排列规则,可以使用Flow来实现。
好了,Flutter流式布局大概就是这样。
https://blog.csdn.net/yuzhiqiang_1993/article/details/88378021
Flutter 流式布局、自动换行(Wrap、Flow)相关推荐
- Flutter 流式布局之Wrap详解
Wrap Wrap可以为子控件进行水平或者垂直方向布局,且当空间用完时,Wrap会自动换行,也是常说的流式布局. 创建多个子控件做为Wrap的子控件,代码如下: <span style=&qu ...
- Flutter流式布局
Row(children: <Widget>[Text("大帅哥"*100),],), 如果子widget超出屏幕范围,则会报溢出错误.这是因为Row默认只有一行,如果 ...
- Flutter 流式布局组件
Flutter 流式布局组件 简述 类似于Android中的FlexboxLayout布局. Wrap spacing: 主轴间距.runSpacing: 纵轴间距.direction: 布局方向.a ...
- Flutter流式布局Wrap使用详解
目录 先看Wrap相关属性 direction alignment spacing与runSpacing runAlignment crossAxisAlignment verticalDirecti ...
- Flutter文本标签TextTagWidget,搜索记录流式布局显示文本标签
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 网易云[玩转大前端]配套课程 EDU配套 教程 Flutter开发的点滴积累系列文章 1 添加依赖 flut ...
- 自定义 FlowLayout流式布局搜索框 加 GreenDao存取搜索记录,使用RecyclerView展示
输入框布局的shape <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android ...
- Flutter: 弹性布局Flex(Expanded)、流式布局Wrap、Flow
用Android原生实现流式布局[实现例如app的很多标签]需要自定义View继承自ViewGroup,然后代码量也不小. 相关自定义View实现流式布局,请参考这位老兄的博客: https://bl ...
- 46、Flutter之 布局组件 流式布局Wrap,Flow
Row 和 Colum 如果子 widget 超出屏幕范围,则会报溢出错误,如: Row(children: <Widget>[Text("xxx"*100)], ); ...
- 第 2-3 课:流式布局组件详解(Flow、Wrap)
这节课将继续讲解 Flutter 的常用组件中的布局使用的组件,本节课主要讲解 Flutter 里的流式布局(或者瀑布)组件的用法.在 Flutter 中主要通过 Flow 和 Wrap 组件来实现流 ...
最新文章
- GitHub年度报告:JS第一,Python第二,Java第三
- GRE over IPSEC ×××
- Python:colorlog的三个例子
- Java内存管理:深入Java内存区域
- redis 学习笔记一
- Scala的所有符号运算符都意味着什么?
- np.random.seed()
- 计算机磁盘修复工具,电脑自带chkdsk磁盘修复工具使用教程
- 光猫修改rms服务器地址大全,光猫服务器dns怎么设置教程
- 锐文网络安全网闸卡各种应用场景
- 握奇ukey没证书_关于中国银行企业网银USBKEY常见问题及解决方法指引140523.doc
- cgi-bin是什么
- 谷歌浏览器Google Chrome如何在打开新标签页时设置指定网址
- 利用python实现对人物头发及衣服颜色的替换
- 【图像超分辨】RDN
- 关于如何设置收藏本站和设为首页
- 顺序图和活动图的一个区别
- 常见模拟电路设计 三(含仿真) :文氏桥正弦波发生电路
- 【NLP+图神经网络+推荐领域】2020年最新综述性文章推荐
- 单摆运动模拟程序C语言,单摆C语言程序代码