Wrap可以实现流布局,单行的Wrap跟Row表现几乎一致,单列的Wrap则跟Column表现几乎一致。但
Row与Column都是单行单列的,Wrap则突破了这个限制,mainAxis上空间不足时,则向crossAxis上
去扩展显示。

 

Wrap组件的使用

//自定义按钮组件
class MyApp extends StatelessWidget {
String text; //按钮文字
void Function()? onPressed; //方法传参
MyApp(this.text, {super.key, required this.onPressed}); //必须传入required @override
Widget build(BuildContext context) {
return ElevatedButton(
style: ButtonStyle(
backgroundColor:
MaterialStateProperty.all(Color.fromARGB(255, 241, 223, 223)),
foregroundColor: MaterialStateProperty.all(Colors.black45),
),
onPressed: onPressed,
child: Text(text),
);
}
} class MyApp2 extends StatelessWidget {
const MyApp2({super.key});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(10),
child: Wrap(
alignment: WrapAlignment.center, //主轴的对其方式 center居中 end据右
spacing: 10, //X轴间距
runSpacing: 5, //y轴间距
direction: Axis.horizontal, // horizontal水平(默认是水平) vertical 垂直
children: [
MyApp(
"第一级",
onPressed: () {
print("第一级按钮1");
},
),
MyApp("第2级11", onPressed: () {},),
MyApp("第3级 DA ", onPressed: () {},),
MyApp("第4级", onPressed: () {},),
MyApp("第5级DF ", onPressed: () {},),
MyApp("第6级", onPressed: () {},),
MyApp("第7级DA ", onPressed: () {},),
MyApp("第8级", onPressed: () {},),
MyApp("第9级D A ", onPressed: () {},),
],
));
}
}

16、Flutter Wrap组件 实现流布局的更多相关文章

  1. Flutter Wrap 组件实现流布局

    Wrap 可以实现流布局,单行的 Wrap 跟 Row 表现几乎一致,单列的 Wrap 则跟 Row 表 现几乎一致.但 Row 与 Column 都是单行单列的,Wrap 则突破了这个限制,main ...

  2. Flutter——Wrap组件(流式布局)

    Wrap 可以实现流布局,单行的 Wrap 跟 Row 表现几乎一致,单列的 Wrap 则跟 Row 表现几乎一致.但 Row 与 Column 都是单行单列的,Wrap 则突破了这个限制,mainA ...

  3. 13Flutter页面布局 Wrap组件

    /* Flutter页面布局Wrap组件: Wrap可以实现流布局,单行的Wrap跟Row表现几乎一致,单列的Wrap则跟Row表现几乎一致. 但Row与Column都是单行单列的.Wrap则突破了这 ...

  4. 页面布局 Wrap 组件 和 RaisedButton按钮

    一.RaisedButton 定义一个按钮 Flutter 中通过 RaisedButton 定义一个按钮.RaisedButton 里面有很多的参数,只讲简单的进行使用. return Raised ...

  5. 页面布局 Wrap 组件

    一.Flutter RaisedButton 定义一个按钮 Flutter 中通过 RaisedButton 定义一个按钮.RaisedButton 里面有很多的参数,这一讲我们只是简单的进行使用. ...

  6. flutter Container组件和Text组件

    在开始之前,我们先写一个最简单的入口文件:     后面,都是在这个结构的基础上面完成的. 由于Container组件和Text组件都是写在body里面的,所以下面,先将body抽离成一个组件的形式. ...

  7. Flutter ListTile - Flutter每周一组件

    该文章属于[Flutter每周一组件]系列,其它组件可以查看该系列下的文章,该系列会不间断更新:所有组件的demo已经上传值Github: https://github.com/xj124456/fl ...

  8. 第16讲- UI组件之TextView

    第16讲 UI组件之TextView Android系统所有UI类都是建立在View和ViewGroup这两类的基础上的. 所有View的子类称为widget:所有ViewGroup的子类称为Layo ...

  9. Flutter 父子组件传值

    Flutter 父子组件传值 一父传子: 父中: void onButtonChange(val1,val2,val3){ print('============================子向父 ...

  10. Flutter InkWell - Flutter每周一组件

    Flutter Inkwell使用详解 该文章属于[Flutter每周一组件]系列,其它组件可以查看该系列下的文章,该系列会不间断更新:所有组件的demo已经上传值Github: https://gi ...

随机推荐

  1. Error in v-on handler: “TypeError: _user.default is not a function“

    碰到这个问题一开始以为是方法名重复了,后来检查了一遍也没发现方法名或者属性名重复然后发现是 这个导入方法时没加{}的问题. , 无语.

  2. 【技术积累】《MongoDB实战》笔记(1)

    <MongoDB实战>笔记 第一章 为现代Web而生的数据库 特性 mongodb适合做水平扩展的数据库. mongodb把文档组织成集合,无schema. 索引 mongodb的二级索引 ...

  3. InnoDB 存储引擎之 Buffer Pool

    Mysql 5.7 InnoDB 存储引擎整体逻辑架构图 一.Buffer Pool 概述 InnoDB 作为一个存储引擎,为了降低磁盘 IO,提升读写性能,必然有相应的缓冲池机制,这个缓冲池就是 B ...

  4. 动态规划的状态设计 | bot 讲课の补题

    sto james1badcreeper orz. 好厉害的题,但是怎么有人补了三天才补完呢? CF1810G The Maximum Prefix 线性 dp,怎么有 bot 说题目难度在 *240 ...

  5. Web SSH 的原理与在 ASP.NET Core SignalR 中的实现

    前言 有个项目,需要在前端有个管理终端可以 SSH 到主控机的终端,如果不考虑用户使用 vim 等需要在控制台内现实界面的软件的话,其实使用 Process 类型去启动相应程序就够了.而这次的需求则需 ...

  6. JavaScript用策略模式消除if else 和 switch

    js程序中最常用的if else循环,如果分枝很多的的情况下难免使写出的程序又臭又长,但是根据需求又必须将这些分支处理,此时稍有经验的程序员可能会想到用switch case优化但是只是仅仅做到利于阅 ...

  7. Html5学习内容-4

    (一)display与visibility 这里主要控制元素是否显示 例子 visibility:文字消失空间保留 <!DOCTYPE html> <html lang=" ...

  8. Miniconda安装及搭建

    Miniconda安装配置 下载Miniconda Miniconda下载地址 最新版 Miniconda For Windows 下载链接 Windows 安装配置 修改Powershell执行策略 ...

  9. RIPEMD加密技术

    摘要:RIPEMD(RACE Integrity Primitives Evaluation Message Digest)是一种密码散列函数,广泛应用于网络安全领域.本文首先介绍RIPEMD的起源和 ...

  10. Python 中的单下划线和双下划线

    哈喽大家好,我是咸鱼 当我们在学习 Python 的时候,可能会经常遇到单下划线 _ 和双下划线 __ 这两种命名方式 单下划线 _ 和双下划线 __ 不仅仅是只是一种简单的命名习惯,它们在 Pyth ...