当前位置: 首页 > news >正文

Flutter基础(Children|​​Actions|Container|decoration|child)

代码

showDialog(context: context,builder: (BuildContext context) {return AlertDialog(title: const Text('请输入图形验证码'),content: Column(mainAxisSize: MainAxisSize.min,children: [// 显示验证码图片Container(width: double.infinity,height: 60,decoration: BoxDecoration(border: Border.all(color: Colors.grey),borderRadius: BorderRadius.circular(4),),child: Image.memory(base64Decode(_captchaImageBase64!.split(',')[1]),fit: BoxFit.contain,),),const SizedBox(height: 16),// 验证码输入框TextField(controller: captchaController,decoration: const InputDecoration(hintText: '请输入验证码',border: OutlineInputBorder(),),),],),actions: [TextButton(onPressed: () {Navigator.of(context).pop();},child: const Text('取消'),),TextButton(onPressed: () {final answer = captchaController.text.trim();if (answer.isNotEmpty) {Navigator.of(context).pop();_sendEmailCode(answer);}},child: const Text('确定'),),],);},);

🎁 ​​Container 的结构比喻​

把 Container 想象成一个​​礼物盒​​:

  • child​:盒子里的礼物(例如文字、图片、按钮等)。
  • decoration​:盒子的包装纸(背景色、边框、圆角、阴影等装饰效果)。
  • ​注意​​:decoration 和 color 不可同时使用(会冲突)。

🎨 ​decoration 的用法​

decoration 通过 BoxDecoration 类设置背景样式。

🎁 ​child 的用法​

child 是 Container 内部的内容,可以是任何 Widget。

Container(decoration: BoxDecoration(color: Colors.yellow, borderRadius: BorderRadius.circular(10)),child: Text("Hello Flutter!", style: TextStyle(fontSize: 20)), // child 是文字
)

常见 child 类型:

  • 文字(Text)、图标(Icon)、图片(Image)、按钮(ElevatedButton)等。
  • 甚至另一个 Container(嵌套容器)。

🧩 ​​组合示例​

示例 1:圆角按钮
Container(decoration: BoxDecoration(color: Colors.blue,borderRadius: BorderRadius.circular(20), // 圆角boxShadow: [BoxShadow(color: Colors.grey, blurRadius: 5)] // 阴影),padding: EdgeInsets.all(12), // 内边距(文字与边框的距离)child: Text("点我", style: TextStyle(color: Colors.white)),
)

效果:蓝色圆角按钮,带灰色阴影,文字居中显示。

示例 2:圆形头像
Container(width: 100,height: 100,decoration: BoxDecoration(shape: BoxShape.circle, // 圆形image: DecorationImage(image: NetworkImage("头像链接"), fit: BoxFit.cover),border: Border.all(color: Colors.purple, width: 2),),
)

​Children(孩子们)—— 像“盒子里的玩具”​

想象你有一个​​魔法盒子​​(比如 RowColumn 或 Stack),这个盒子可以装很多小玩具(其他小部件)。children 就是这个盒子的“玩具清单”,告诉盒子里面要放什么玩具。

Column( // 一个竖着放的魔法盒子children: [ // 盒子里要放的玩具清单Text("我是积木1"), // 玩具1:文字Icon(Icons.star), // 玩具2:星星图标Image.network("小猫图片.jpg"), // 玩具3:网络图片],
)
  • 作用​​:children 让多个小部件像排队一样组合在一起(横着排、竖着排或叠起来)。
  • ​就像​​:把你的乐高小人、小车、房子都放进一个收纳盒里!

​Actions(动作)—— 像“遥控器的按钮”​

actions 是专门给 ​​AppBar(顶部的导航栏)​​ 用的参数。它用来放一排小按钮(比如搜索、设置),每个按钮按下去都会触发一个“动作”。

AppBar(title: Text("我的游戏"), // 标题actions: [ // 右边的一排按钮IconButton( // 按钮1:搜索icon: Icon(Icons.search),onPressed: () { print("开始搜索!"); },),IconButton( // 按钮2:设置icon: Icon(Icons.settings),onPressed: () { print("打开设置!"); },),],
)
  • ​作用​​:actions 让 AppBar 右边能放多个功能按钮(比如保存、分享、通知)。
  • ​就像​​:遥控器上的“播放”、“暂停”、“音量+”按钮,每个都管一件事!
http://www.lryc.cn/news/576403.html

相关文章:

  • STM32F103之SPI软件读写W25Q64
  • 力扣第73题-矩阵置零
  • 用鸿蒙打造真正的跨设备数据库:从零实现分布式存储
  • 【区块链】区块链交易(Transaction)之nonce
  • 默克树技术原理
  • Node.js特训专栏-实战进阶:10.MongoDB文档操作与聚合框架
  • 嵌入式硬件与应用篇---寄存器GPIO控制
  • 软件反调试(1)- 基于进程列表的检测
  • Spring AI Alibaba 入门指南:打造企业级 AI 应用
  • 《从 0 到 1 掌握正则表达式:解析串口数据的万能钥匙》
  • Note2.3 机器学习:Adaptive Learning Rate
  • golang中struct中大小写对gin框架的影响
  • 深入剖析AI大模型:Dify的介绍
  • SpringMVC系列(七)(Restful架构风格(下))(完结篇)
  • SpringMVC系列(五)(响应实验以及Restful架构风格(上))
  • 微软人工智能证书AI-102 | 如何快速通过?
  • JavaScript---数组篇
  • 循环向python异步中增加task的几个方法
  • 【unity游戏开发——网络】网络协议、TCP vs UDP 本质区别
  • 卸载Modelsim/Qustasim方法
  • AngularJS Git 提交消息规范
  • Centos 8设置固定IP
  • Linux通过Crontab实现自启动
  • Grab×亚矩阵云手机:以“云端超级节点”重塑东南亚出行与数字生活生态
  • 第十节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 菜单管理(下)
  • docker部署后端服务的脚本
  • 深入详解:决策树算法的概念、原理、实现与应用场景
  • WHERE 子句中使用子查询:深度解析与最佳实践
  • 设计模式精讲 Day 16:迭代器模式(Iterator Pattern)
  • 如何解决电脑windows蓝屏问题