定义子控件在父容器中排版的位置

小结:

1、

先用一个根 Widget 去包装这些子 Widget,然后把这个根 Widget 放到 Container 中,再由 Container 设置它的对齐 alignment、边距 padding 等基础属性和样式属性。

 

 

 

14 | 经典布局:如何定义子控件在父容器中排版的位置? https://time.geekbang.org/column/article/110848

构建视图的基本元素:文本、图片和按钮,用于展示一组连续视图元素的 ListView,以及处理多重嵌套的可滚动视图的 CustomScrollView。

 在 Flutter 中一切皆 Widget,那么布局也不例外。但与基本控件元素不同,布局类的 Widget 并不会直接呈现视觉内容,而是作为承载其他子 Widget 的容器。

这些布局类的 Widget,内部都会包含一个或多个子控件,并且都提供了摆放子控件的不同布局方式,可以实现子控件的对齐、嵌套、层叠和缩放等。而我们要做的就是,通过各种定制化的参数,将其内部的子 Widget 依照自己的布局规则放置在特定的位置上,最终形成一个漂亮的布局。

Flutter 提供了 31 种布局 Widget,对布局控件的划分非常详细,一些相同(或相似)的视觉效果可以通过多种布局控件实现,因此布局类型相比原生 Android、iOS 平台多了不少。比如,Android 布局一般就只有 FrameLayout、LinearLayout、RelativeLayout、GridLayout 和 TableLayout 这 5 种,而 iOS 的布局更少,只有 Frame 布局和自动布局两种。

为了帮你建立起对布局类 Widget 的认知,了解基本布局类 Widget 的布局特点和用法,从而学以致用快速上手开发,在今天的这篇文章中,我特意挑选了几类在开发 Flutter 应用时,最常用也最有代表性的布局 Widget,包括单子 Widget 布局、多子 Widget 布局、层叠 Widget 布局,与你展开介绍。

 

 

单子 Widget 布局:Container、Padding 与 Center

Container,是一种允许在其内部添加其他控件的控件,也是 UI 框架中的一个常见概念。

 

 

在 Flutter 中,Container 本身可以单独作为控件存在(比如单独设置背景色、宽高),也可以作为其他控件的父级存在:Container 可以定义布局过程中子 Widget 如何摆放,以及如何展示。与其他框架不同的是,Flutter 的 Container 仅能包含一个子 Widget。

 

 

所以,对于多个子 Widget 的布局场景,我们通常会这样处理:先用一个根 Widget 去包装这些子 Widget,然后把这个根 Widget 放到 Container 中,再由 Container 设置它的对齐 alignment、边距 padding 等基础属性和样式属性。

 

 

 

 

 

 

 

 

 

 

posted @   papering  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2022-09-08 Check if the context is expired.
2022-09-08 源码 连接池 设计
2021-09-08 BSD Networking Implementation Notes
2020-09-08 一份基准代码,多份部署 显式声明依赖关系 在环境中存储配置 把后端服务当作附加资源 严格分离构建和运行 以一个或多个无状态进程运行应用 通过端口绑定提供服务 通过进程模型进行扩展 快速启动和优雅终止可最大化健壮性 尽可能的保持开发,预发布,线上环境相同 把日志当作事件流 后台管理任务当作一次性进程运行
2020-09-08 微服务,如何拆分服务是精髓
2020-09-08 把组织和系统横向打通,提升研发效率; 建设稳态与敏态融合的基础设施,为应用赋能; 打造大中台体系,建设共享中台及能力中心,这也是目前业界的一个趋势与方向; 把目前零散的技术架构建设成体系化的技术架构,给业务提供整体的技术支撑
2020-09-08 为什么从REST转向gRPC 需要流式传输搜索结果,也就是在有第一批结果时就开始传输
点击右上角即可分享
微信分享提示