Flutter笔记 - 布局类组件】的更多相关文章

前言 如果只想简单的调整一个子元素在父元素中的位置的话,使用Align组件会更简单一些. 接口描述 const Align({ Key key, // 需要一个AlignmentGeometry类型的值,表示子组件在父组件中的起始位置. // AlignmentGeometry 是一个抽象类,它有两个常用的子类:Alignment和 FractionalOffset. this.alignment = Alignment.center, // widthFactor和heightFactor是用…
前言 布局类组件都会包含一个或多个子组件,不同的布局类组件对子组件排版(layout)方式不同. 我们知道,Element树才是最终的绘制树,Element树是通过Widget树来创建的(通过Widget.createElement()),Widget其实就是Element的配置数据. 故而,根据Widget是否需要包含子节点可将Widget分为三类,并对应三种Element,如下表: Widget 对应的Element 用途 LeafRenderObjectWidget LeafRenderO…
前言 层叠布局,即子组件可以根据距父容器四个角的位置来确定自身的位置.绝对定位运行子组件堆叠起来,即按照代码中声明的顺序. Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位,Stack允许子组件堆叠,而Positioned用于根据Stack的四个角来确定子组件的位置. 接口描述 Stack({ Key key, // 此参数决定如何去对齐没有定位(没有使用Positioned)或部分定位的子组件. // 所谓部分定位,在这里特指没有在某一个轴上定位:left.ri…
前言 把超出屏幕显示范围会自动折行的布局称为流式布局.Flutter中通过Wrap和Flow来支持流式布局,将Row换成Wrap后溢出部分则会自动折行. Wrap 接口描述 Wrap({ Key key, this.direction = Axis.horizontal, this.alignment = WrapAlignment.start, // 主轴方向子widget的间距 this.spacing = 0.0, // 纵轴方向的对齐方式 this.runAlignment = Wrap…
前言 弹性布局允许子组件按照一定比例来分配父容器空间,Flutter中的弹性布局主要通过Flex和Expanded来配合实现. Flex Flex组件可以沿着水平或垂直方向排列子组件,如果你知道主轴方向,使用Row或Column会方便一些,因为Row和Column都继承自Flex,参数基本相同,所以能使用Flex的地方基本上都可以使用Row或Column.Flex本身功能是很强大的,它也可以和Expanded组件配合实现弹性布局.Flex继承自MultiChildRenderObjectWidg…
前言 所谓线性布局,即指沿水平或垂直方向排布子组件.Flutter中通过Row和Column来实现线性布局,并且它们都继承自弹性布局(Flex). 接口描述 Row({ Key key, // 表示子组件在Row所占用的水平空间内对齐方式. // 如果mainAxisSize值为MainAxisSize.min,则此属性无意义,因为子组件的宽度等于Row的宽度. // 只有当mainAxisSize的值为MainAxisSize.max时,此属性才有意义. // MainAxisAlignmen…
/* Flutter页面布局Wrap组件: Wrap可以实现流布局,单行的Wrap跟Row表现几乎一致,单列的Wrap则跟Row表现几乎一致. 但Row与Column都是单行单列的.Wrap则突破了这个限制.mainAxis上空间不足时,则向crossAxis上去扩展展示. direction 主轴的方向,默认水平. alignment 主轴的对齐方式 spacing 主轴方向上的间距 textDirection 文本方向 verticalDirection 定义了children摆放顺序,默认…
1.布局和容器 [布局]是把[容器]按照不同的方式排列起来. Scaffold包含的主要部门:appBar,body,bottomNavigator 其中body可以是一个布局组件,也可以是一个容器组件 2.Layout 布局…
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 ClipRect ClipRect组件使用矩形裁剪子组件,通常情况下,ClipRect作用于CustomPaint . CustomSingleChildLayout . CustomMultiChildLayout . Align . Center . OverflowBox . SizedOverflowBox组件,例如ClipRect作用于Align…
Flutter系统提供了一些日期选择类组件,比如DayPicker.MonthPicker.YearPicker.showDatePicker.CupertinoDatePicker等,其中前4个为Material风格组件,最后一个为iOS风格组件.本文介绍了控件的基本用法及如何实现国际化,如果系统提供的国际化不满足你的需要,最后也介绍了如何实现自定义国际化. DayPicker 显示给定月份的日期,并允许选择一天.这些天以矩形网格排列,一周的每一天都有一列. DayPicker有几个必填参数,…