Flutter 与 Android 原生布局组件对照表(完整版)

本对照表用于帮助 Android 开发者快速理解 Flutter 中的布局组件与原生布局的关系。


📘 Flutter ↔ Android 布局组件对照表

Flutter WidgetAndroid View/Layout说明
ContainerFrameLayout / View通用容器,可设置背景、边距、对齐等
RowLinearLayout (horizontal)横向线性排列
ColumnLinearLayout (vertical)纵向线性排列
StackFrameLayout层叠布局
Positioned (在 Stack 内)FrameLayout + layout_gravity / margin绝对定位的子项
Align / CenterRelativeLayout + layout_centerInParent / gravity对齐到父级
ExpandedLinearLayout + layout_weight占据剩余空间
Flexiblelayout_weight + 自适应灵活伸缩(类似 weight 的 wrap_content)
SizedBoxView + layout_width/height固定尺寸
Paddingandroid:padding设置内边距
Margin (通过 Padding 外包)android:layout_marginFlutter 没有 Margin,通常通过外层 Padding 模拟
WrapFlexboxLayout / 自定义 FlowLayout自动换行布局
TableTableLayout表格布局
IntrinsicWidth/Heightwrap_content尺寸自适应内容(性能差时慎用)
TransformView.setRotation/Scale/Translation变换视图
CustomPaintCanvas + View 自定义绘制自定义绘图

📱 滚动与列表布局

Flutter WidgetAndroid View/Layout说明
SingleChildScrollViewScrollView单个滚动子项
ListViewListView / RecyclerView垂直滚动列表
GridViewGridView / RecyclerView + GridLayoutManager网格布局
PageViewViewPager2翻页组件
CustomScrollView + SliversRecyclerView + 多类型 ViewType自定义滚动内容

🔧 复杂布局、定位、对齐

Flutter WidgetAndroid View/Layout说明
RelativeLayout 等效无直接对应(但以下组合可实现)
Stack + PositionedRelativeLayout + rules实现子元素相对布局
AlignRelativeLayout + alignParentX/Y单个子项对齐
LayoutBuilderonMeasure() + 自定义布局根据父布局约束决定子布局
CustomMultiChildLayoutViewGroup + onLayout()自定义多个子控件位置
FractionallySizedBox百分比布局(无直接原生对应)占父布局一定比例
Positioned.fillmatch_parent填满父容器
OverflowBoxclipChildren=false允许子项溢出父容器

🧩 页面结构与导航

Flutter WidgetAndroid View/Layout说明
ScaffoldActivity + 页面根布局页面基础骨架
AppBarToolbar顶部导航栏
BottomNavigationBarBottomNavigationView底部导航栏
DrawerDrawerLayout + NavigationView左右侧滑菜单
TabBar + TabBarViewTabLayout + ViewPager2顶部 Tab 页面切换
Navigator + RouteFragmentManager / Intent页面导航系统

🎨 控件级对应(附加)

Flutter WidgetAndroid View说明
TextTextView显示文本
TextFieldEditText输入框
ElevatedButtonButton默认按钮
IconButtonImageButton图标按钮
ImageImageView显示图片
CheckboxCheckBox复选框
RadioRadioButton单选按钮
SwitchSwitch开关按钮
SliderSeekBar滑动条
ProgressIndicatorProgressBar进度条
AlertDialogAlertDialog弹窗对话框
SnackBarToast / Snackbar底部提示
DropdownButtonSpinner下拉菜单

🧠 总结建议

  • Flutter 更强调组合式声明性布局,Android 更偏向静态 XML。
  • Flutter 的 Stack + Positioned 是最接近 RelativeLayout 的实现方式。
  • 灵活使用 AlignExpandedFlexible 可以覆盖大部分 Android 布局需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ps填充图层

在Photoshop(PS)中,填充图层是一种强大的工具,它允许用户在不破坏原始图像数据的情况下,快速为图像添加颜色、渐变或图案等填充效果。以下从填充图层的类型、创建方法、编辑与修改、应用场景等方面进行详细介绍。 填充…

网页前端开发(基础进阶1--盒子模型)

颜色表示方法3种: 1.关键字: color:green; gray red yellow 2.rgb表示法:红,绿,蓝三原色。rgb(r,g,b),r表示红色,g表示绿…

第10讲、Odoo 18框架设计原理全解析

前言 Odoo是一套开源的企业资源规划(ERP)系统,以其模块化、可扩展性和全面的业务应用套件而闻名。Odoo 18作为其最新版本,在架构设计、前端技术和后端实现上都有显著的创新和优化。本文将从前端的OWL组件化、模块化,到后端的ORM封装&#xf…

CSS3 渐变、阴影和遮罩的使用

全文目录: 开篇语**前言****1. CSS3 渐变 (Gradient)****1.1 线性渐变 (linear-gradient)****1.2 径向渐变 (radial-gradient)** **2. CSS3 阴影 (Shadow)****2.1 盒子阴影 (box-shadow)****2.2 文本阴影 (text-shadow)** **3. CSS3 遮罩 (Mask)****3.1 基本遮罩 (m…

[Linux]虚拟地址到物理地址的转化

[Linux]虚拟地址到物理地址的转化 水墨不写bug 文章目录 一、再次认识地址空间二、页表1、页表的结构设计2、页表节省了空间,省在哪里?3、页表的物理实现 一、再次认识地址空间 OS和磁盘交互的内存基本单位是4KB,这4KB通常被称为内存块。OS对…

Kubernetes(K8s)核心架构解析与实用命令大全

在容器化技术席卷全球的今天,Kubernetes(简称K8s,以“8”代替“ubernete”八个字母)已成为云原生应用部署和管理的核心基础设施。作为Google基于内部Borg系统开源打造的容器编排引擎,K8s不仅解决了大规模容器管理的难题…

基于微信小程序的scratch学习系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言&#xff0…

postgresql 流复制中指定同步的用户

postgresql 流复制中指定同步的用户 在创建postgresql流复制的过程中,可以指定用户名。 主库pg_hba.conf配置 vi $PGDATA/pg_hba.conf host replication repl 192.168.56.12/32 md5 host all all 0.0.0.0/0 md5主库创建同步的用户 # 主库创建 replicator 流复制…

基于springboot的运动员健康管理系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言&#xff0…

工具识别系统Python+深度学习+人工智能+卷积神经网络算法+TensorFlow+图像识别

一、介绍 工具识别系统,使用Python作为主要编程语言,基于TensorFlow搭建卷积神经网络算法,通过收集了8种常见的日常工具图片(“汽油罐(Gasoline Can)”, “锤子(Hammer)”, “钳子&…

2024 CKA模拟系统制作 | Step-By-Step | 8、题目搭建-创建 Ingress

目录 ​​​​​​免费获取题库配套 CKA_v1.31_模拟系统 一、题目 二、核心考点 Ingress 资源定义 Ingress Controller 依赖 服务暴露验证 网络层次关系 三、搭建模拟环境 1.创建命名空间 2.安装ingress ingress-nginx-controller 3.创建hello.yaml并部署 四、总结 …

关于uv 工具的使用总结(uv,conda,pip什么关系)

最近要开发MCP 项目,uv工具使用是官方推荐的方式,逐要了解这个uv工具。整体理解如下: 一.uv工具的基本情况 UV 是一个由 Rust 编写的现代化 Python 包管理工具,旨在通过极速性能和一体化功能替代传统工具(如 pip、vi…

嵌入式学习笔记 - 新版Keil软件模拟时钟Xtal灰色不可更改的问题

在新版Keil软件中,模拟时钟无法修改XTAL频率,默认只能使用12MHz时钟。‌这是因为Keil MDK从5.36版本开始,参数配置界面不再支持修改系统XTAL频率,XTAL选项变为灰色,无法修改。这会导致在软件仿真时出现时间错误的问题&…

Spring AI Image Model、TTS,RAG

文章目录 Spring AI Alibaba聊天模型图像模型Image Model API接口及相关类实现生成图像 语音模型Text-to-Speech API概述实现文本转语音 实现RAG向量化RAGRAG工作流程概述实现基本 RAG 流程 Spring AI Alibaba Spring AI Alibaba实现了与阿里云通义模型的完整适配,…

Java进阶---JVM

JVM概述 JVM作用: 负责将字节码翻译为机器码,管理运行时内存 JVM整体组成部分: 类加载系统(ClasLoader):负责将硬盘上的字节码文件加载到内存中 运行时数据区(RuntimeData Area):负责存储运行时各种数据 执行引擎(Ex…

数据类型检测有哪些方式?

typeof 其中数组 对象 null都会判断为Object,其他正确 typeof 2 // number typeof true //bolean typeof str //string typeof [] //Object typeof function (){} // function typeof {} //object typeof undefined //undefined typeof null // nullinstanceof 判断…

NodeJS全栈开发面试题讲解——P6安全与鉴权

✅ 6.1 如何防止 SQL 注入 / XSS / CSRF? 面试官您好,Web 安全三大经典问题分别从不同层面入手: 🔸 SQL 注入(Server端) 原理:恶意用户将 SQL 注入查询语句拼接,导致数据泄露或破坏…

npm error Cannot find module ‘negotiator‘ 的处理

本想运行npm create vuelatest,但提示: npm error code MODULE_NOT_FOUND npm error Cannot find module negotiator npm error Require stack: npm error - C:\Users\Administrator\AppData\Roaming\nvm\v18.16.1\node_modules\npm\node_modules\tuf-j…

Python爬虫:AutoScraper 库详细使用大全(一个智能、自动、轻量级的网络爬虫)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、AutoScraper概述1.1 AutoScraper介绍1.2 安装1.3 注意事项二、基本使用方法2.1 创建 AutoScraper 实例2.2 训练模型2.3 保存和加载模型2.4 数据提取方法2.5 自定义规则三、高级功能3.1 多规则抓取3.2 分页抓取3.3 代…

【Netty系列】解决TCP粘包和拆包:LengthFieldBasedFrameDecoder

目录 如何使用? 1. 示例代码(基于Netty) 2. 关键参数解释 3. 协议格式示例 4. 常见配置场景 场景1:长度字段包含自身 场景2:长度字段在消息中间 5. 注意事项 举个例子 完整示例:客户端与服务端交互…