怎么使用Flutter叠加组件Stack
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本篇内容介绍了"怎么使用Flutter叠加组件Stack"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年11月13日怎么使用Flutter叠加组件Stack
本篇内容介绍了"怎么使用Flutter叠加组件Stack"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
注意:无特殊说明,Flutter版本及Dart版本如下:
Flutter版本: 1.12.13+hotfix.5
Dart版本: 2.7.0
Stack
Stack组件可以将子组件叠加显示,根据子组件的顺利依次向上叠加,用法如下:
Stack( children:[ Container( height: 200, width: 200, color: Colors.red, ), Container( height: 170, width: 170, color: Colors.blue, ), Container( height: 140, width: 140, color: Colors.yellow, ) ],)
效果如下:

Stack未定位的子组件大小由fit参数决定,默认值是StackFit.loose,表示子组件自己决定,StackFit.expand表示尽可能的大,用法如下:
Stack( fit: StackFit.expand, ...)
Stack未定位的子组件的默认左上角对齐,通过alignment参数控制,用法如下:
Stack( alignment: Alignment.center, ...)
效果如下:

有没有注意到fit和alignment参数控制的都是未定位的子组件,那什么样的组件叫做定位的子组件?使用Positioned包裹的子组件就是定位的子组件,用法如下:
Stack( alignment: Alignment.center, children:[ Container( height: 200, width: 200, color: Colors.red, ), Positioned( left: 10, right: 10, bottom: 10, top: 10, child: Container( color: Colors.green, ), ) ],)
Positioned组件可以指定距Stack各边的距离,效果如下:
如果子组件超过Stack边界由overflow控制,默认是裁剪,下面设置总是显示的用法:
Stack( overflow: Overflow.visible, children:[ Container( height: 200, width: 200, color: Colors.red, ), Positioned( left: 100, top: 100, height: 150, width: 150, child: Container( color: Colors.green, ), ) ],)
效果如下:
IndexedStack
IndexedStack是Stack的子类,Stack是将所有的子组件叠加显示,而IndexedStack只显示指定的子组件,用法如下:
IndexedStack( index: _index, children:[ Center( child: Container( height: 300, width: 300, color: Colors.red, alignment: Alignment.center, child: Icon( Icons.fastfood, size: 60, color: Colors.blue, ), ), ), Center( child: Container( height: 300, width: 300, color: Colors.green, alignment: Alignment.center, child: Icon( Icons.cake, size: 60, color: Colors.blue, ), ), ), Center( child: Container( height: 300, width: 300, color: Colors.yellow, alignment: Alignment.center, child: Icon( Icons.local_cafe, size: 60, color: Colors.blue, ), ), ), ], )
通过点击按钮更新_index值,代码如下:
Row( mainAxisAlignment: MainAxisAlignment.center, children:[ IconButton( icon: Icon(Icons.fastfood), onPressed: () { setState(() { _index = 0; }); }, ), IconButton( icon: Icon(Icons.cake), onPressed: () { setState(() { _index = 1; }); }, ), IconButton( icon: Icon(Icons.local_cafe), onPressed: () { setState(() { _index = 2; }); }, ), ], )
效果如下:
Positioned
Positioned用于定位Stack子组件,Positioned必须是Stack的子组件,基本用法如下:
Stack( children:[ Positioned( left: 10, right: 10, top: 10, bottom: 10, child: Container(color: Colors.red), ), ],)
效果如下:
"怎么使用Flutter叠加组件Stack"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
组件
效果
定位
叠加
版本
参数
控制
内容
更多
知识
实用
特殊
学有所成
接下来
代码
包裹
困境
大小
子类
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国家哲学科学期刊数据库
黄浦区参考数据库服务收费标准
抢门票软件开发
网络安全图片大小攻击
网络安全黑板报内容
r740服务器内部构造
腐烂国度需要服务器链接吗
表格怎么转为数据库
花都软件开发专业选哪家好
杨浦区专业软件开发哪家好
服务器安全狗攻击日志
申领上海社保卡 数据库无本人像
修改dede数据库前缀
济宁智慧医养软件开发
数据库服务器配置清单
响应式网站建设软件开发
网络安全钥匙框弹不出来
免费云服务器管理系统
网络安全双进专题教育活动简讯
app用啥软件开发
通过搭建虚拟网络安全实验环境
ibm服务器过保
吉林年年丰收网络技术有限公司
浏览服务器模式
网络安全涉及面
软件开发英语要好
阿里会不会定期清理数据库
软件开发的版本流程是
手机膜参数数据库
网络安全的责任定义