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

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.xdnf.cn/news/14681.html

相关文章:

  • git使用详解和示例
  • 【区块链】区块链交易(Transaction)之nonce
  • 【Docker基础】Docker容器管理:docker stats及其参数详解
  • C++共享型智能指针std::shared_ptr使用介绍
  • 机器学习配置环境
  • 某音Web端消息体ProtoBuf结构解析
  • 力扣 刷题(第七十一天)
  • 第七章——一元函数微分学的物理应用
  • 多表连接查询:语法、注意事项与最佳实践
  • 如何快速学习一门新编程语言
  • 【Linux】理解进程状态与优先级:操作系统中的调度原理
  • STM32HAL 旋转编码器教程
  • 自定义上下两个方向的柱形图
  • Vue.js 中的数字格式化组件:`FormattedNumber`
  • Note2.4 机器学习:Batch Normalization Introduction
  • 栅极驱动器选的好SiC MOSFET高效又安全
  • Microsoft AZ-900AI-900考证速过经验分享
  • docker部署后端服务的脚本
  • 大模型在急性冠脉综合征预测及诊疗方案制定中的应用研究
  • 大数据在UI前端的应用创新研究:用户偏好的动态调整与优化
  • JavaScript中Object()的解析与应用
  • 免费AI助手工具深度测评:Claude4本地化部署与实战应用指南
  • Spring Boot 项目实训 - 图书信息网站
  • Windows11系统上安装WM虚拟机及Ubuntu 22.04系统
  • ESP32 008 MicroPython Web框架库 Microdot 实现的网络文件服务器
  • 开源 java android app 开发(十三)绘图定义控件、摇杆控件的制作
  • 【策划所需编程知识】
  • Tomcat Maven 插件
  • 人工智能-基础篇-3-什么是深度学习?(DL,卷积神经网络CNN,循环神经网络RNN,Transformer等)
  • flink同步kafka到paimon,doris加速查询