flutter中流式布局

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter中流式布局相关的知识,希望对你有一定的参考价值。

参考技术A 流式布局(Liquid)的特点(也叫"Fluid") 是页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变。栅栏系统(网格系统),用户标签等。在Flutter中主要有Wrap和Flow两种Widget实现。

在介绍Row和Colum时,如果子widget超出屏幕范围,则会报溢出错误,在Flutter中通过Wrap和Flow来支持流式布局,溢出部分则会自动折行。

上述有很多属性和Row的相同,其意义其实也是相同的,这里我就不一一介绍了,主要介绍下不同的属性:

我们一般很少会使用Flow,因为其过于复杂,需要自己实现子widget的位置转换,在很多场景下首先要考虑的是Wrap是否满足需求。Flow主要用于一些需要自定义布局策略或性能要求较高(如动画中)的场景。Flow有如下优点:

我们对六个色块进行自定义流式布局:

实现TestFlowDelegate:

可以看到我们主要的任务就是实现paintChildren,它的主要任务是确定每个子widget位置。由于Flow不能自适应子widget的大小,我们通过在getSize返回一个固定大小来指定Flow的大小,实现起来还是比较麻烦的。

以上是关于flutter中流式布局的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 布局类组件:流式布局(Wrap和Flow)

flutter-流式布局

flutter wrap 流式布局

Flutter 布局- FlowTableWrap详解

warp 流式布局

Java AWT 图形界面编程LayoutManager 布局管理器 ② ( FlowLayout 流式布局 )