最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    正文概述 掘金(弗拉德)   2021-01-15   573

    Wrap

    FlutterWrap是流式布局控件,RowColumn在布局上是很好用,但是有一个缺点,如果当子控件数量过多导致RowColumn装载不下的时候,就会出现UI页面上的错误。Wrap可以完美的避免这个问题,当控件过多一行显示不全的时候,Wrap可以换行显示。

    当然WrapRowColumn有着很多相似的地方。 我们先来看Wrap的构造函数:

    Wrap({
        // Key
        Key key,
        // 子控件显示方向, 有垂直方向 水平方向两个值
        this.direction = Axis.horizontal,
        /// 子控件的 布局方式  跟Column的 mainAxisalignment类似 
        this.alignment = WrapAlignment.start,
        /// 子控件 主轴方向间距
        this.spacing = 0.0,
        /// 子控件 交叉方向的 布局方式
        this.runAlignment = WrapAlignment.start,
        /// 子控件 交叉方向间距
        this.runSpacing = 0.0,
        /// 交叉轴的对齐方式 与 Column 的crossAxisAlignment 一样
        this.crossAxisAlignment = WrapCrossAlignment.start,
        /// 书写方向 与 Column的 textDirection 一样
        this.textDirection,
        /// Wrap交叉轴方向上子控件的布局方向
        this.verticalDirection = VerticalDirection.down,
        /// 裁剪方式
        this.clipBehavior = Clip.hardEdge,
        /// 子控件
        List<Widget> children = const <Widget>[],
    }) 
    

    下面我们就来看看这些参数

    direction

    direction有两个参数值Axis.horizontalAxis.vertical,很明显它管理着Wrap的是水平布局还是垂直布局。 Axis.horizontal表示子控件按水平方向布局,Axis.vertical表示子控件按垂直方向布局显示。

    Axis.horizontal 效果如下:

    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    Axis.vertical 效果如下: 【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    alignment

    alignment接收一个WrapAlignment类型的枚举,WrapAlignment共有六个枚举值,如下:

    枚举值描述
    start与 开始的位置对齐end与 结束的位置对齐center居中对齐spaceBetween把剩余的空间拆分成n-1份(n是子控件的个数) 每一份都插入到子控件之间spaceEvenly把剩余的空间拆分成n+1份(n是子控件的个数) 然后均匀分布spaceAround把剩余空间拆分成 2n 份(n是子控件的个数) 每个子控件上下各放一份

    WrapAlignment.start
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    WrapAlignment.center
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    WrapAlignment.end
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    WrapAlignment.spaceBetween
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    WrapAlignment.spaceEvenly
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    WrapAlignment.spaceAround
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    runAlignment

    runAlignment接收一个WrapAlignment类型的枚举,WrapAlignment共有六个枚举值(跟alignment的枚举值是一样的),runAlignment控制是的是Wrap布局交叉方向的对齐方式。
    如果Wrap的是水平方向布局,runAlignment控制的就是Wrap垂直方向的对齐方式。

    verticalDirection

    verticalDirection有两个值VerticalDirection.downVerticalDirection.up,表示从哪个方向开始布局。
    VerticalDirection.down
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    VerticalDirection.up
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    spacing 和 runSpacing

    spacing表示子控件主轴方向间距,runSpacing子控件在交叉方向间距。
    在一个水平方向布局的Wrap为中,spacing表示的就是水平方向子控件之间的间距,runSpacing表示的就是子控件在垂直方向上的间距。

    space
    space等于10的样子
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    space等于40的样子
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡 runSpacing
    runSpacing等于10的样子
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    runSpacing等于40的样子
    【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    想体验以上示例的运行效果,可以到我的Github仓库项目flutter_app->lib->routes->wrap_page.dart查看,并且可以下载下来运行并体验。


    起源地下载网 » 【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Warp | 七日打卡

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元