热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flutter中Wrap的使用详解(含对比图)_FlutterWidgets

这是我参与更文挑战的第9天,活动详情查看:更文挑战前言之前两篇我们聊了滚动列表ListView和GridView,这篇我们来聊聊Wra

这是我参与更文挑战的第9天,活动详情查看: 更文挑战

前言

之前两篇我们聊了滚动列表 ListViewGridView ,这篇我们来聊聊 Wrap ,看字面意思就是「包裹」,与列表型 Widget 区别在于他是可以根据子项 Widget 的大小来实现自动排列的,而且自身不支持滚动。

看看效果

01.png

使用方式

因为 Wrap 使用是比较简单的,难点在于各个参数的调配上,所以我们先看看基本的构建方法,然后聊聊各个属性的使用效果

// 简单的构建
Wrap(
children: List.generate(20, (index) => getItem(index)),
)

getItem 实现

/// 获取子项目
Widget getItem(int index) {
var item = listData[index % listTotal];
return Chip(
// 圆形头像
avatar: CircleAvatar(
backgroundImage: NetworkImage(item.url),
),
// 文字标签
label: Text(item.title),
// 删除按钮,添加后回自动设置 Icon
onDeleted: () {},
);
}

间距

Wrap(
// 子项间距
spacing: 10,
// 行间距
runSpacing: 20,
children: List.generate(20, (index) => getItem(index)),
)

02.png

方向


  • Axis.horizontal(水平方向-默认)
  • Axis.vertical(垂直方向)

Wrap(
// 方向设置垂直,默认是
direction: Axis.vertical,
children: List.generate(20, (index) => getItem(index)),
)

03.png

对齐参数

Wrap Widget 的难点在于对齐参数的掌握,使用是非常简单的,之前也看到了,那么我们就一个一个的去看效果对比吧

alignment (子项对齐方式)


WrapAlignment.startWrapAlignment.centerWrapAlignment.end
image.pngimage.pngimage.png
WrapAlignment.spaceAroundWrapAlignment.spaceBetween**WrapAlignment.spa
ceEvenly**
image.pngimage.pngimage.png

runAlignment (行「整体」对齐方式)

| WrapAlignment.start | WrapAlignment.center | WrapAlignment.end |
方式)

| WrapAlignment.start | WrapAlignment.center | WrapAlignment.end |


推荐阅读
author-avatar
醒葛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有