Flutter 与 Android 原生布局组件对照表(完整版)
本对照表用于帮助 Android 开发者快速理解 Flutter 中的布局组件与原生布局的关系。
📘 Flutter ↔ Android 布局组件对照表
Flutter Widget | Android View/Layout | 说明 |
---|---|---|
Container | FrameLayout / View | 通用容器,可设置背景、边距、对齐等 |
Row | LinearLayout (horizontal) | 横向线性排列 |
Column | LinearLayout (vertical) | 纵向线性排列 |
Stack | FrameLayout | 层叠布局 |
Positioned (在 Stack 内) | FrameLayout + layout_gravity / margin | 绝对定位的子项 |
Align / Center | RelativeLayout + layout_centerInParent / gravity | 对齐到父级 |
Expanded | LinearLayout + layout_weight | 占据剩余空间 |
Flexible | layout_weight + 自适应 | 灵活伸缩(类似 weight 的 wrap_content) |
SizedBox | View + layout_width/height | 固定尺寸 |
Padding | android:padding | 设置内边距 |
Margin (通过 Padding 外包) | android:layout_margin | Flutter 没有 Margin,通常通过外层 Padding 模拟 |
Wrap | FlexboxLayout / 自定义 FlowLayout | 自动换行布局 |
Table | TableLayout | 表格布局 |
IntrinsicWidth/Height | wrap_content | 尺寸自适应内容(性能差时慎用) |
Transform | View.setRotation/Scale/Translation | 变换视图 |
CustomPaint | Canvas + View 自定义绘制 | 自定义绘图 |
📱 滚动与列表布局
Flutter Widget | Android View/Layout | 说明 |
---|---|---|
SingleChildScrollView | ScrollView | 单个滚动子项 |
ListView | ListView / RecyclerView | 垂直滚动列表 |
GridView | GridView / RecyclerView + GridLayoutManager | 网格布局 |
PageView | ViewPager2 | 翻页组件 |
CustomScrollView + Slivers | RecyclerView + 多类型 ViewType | 自定义滚动内容 |
🔧 复杂布局、定位、对齐
Flutter Widget | Android View/Layout | 说明 |
---|---|---|
RelativeLayout 等效 | 无直接对应(但以下组合可实现) | |
Stack + Positioned | RelativeLayout + rules | 实现子元素相对布局 |
Align | RelativeLayout + alignParentX/Y | 单个子项对齐 |
LayoutBuilder | onMeasure() + 自定义布局 | 根据父布局约束决定子布局 |
CustomMultiChildLayout | ViewGroup + onLayout() | 自定义多个子控件位置 |
FractionallySizedBox | 百分比布局(无直接原生对应) | 占父布局一定比例 |
Positioned.fill | match_parent | 填满父容器 |
OverflowBox | clipChildren=false | 允许子项溢出父容器 |
🧩 页面结构与导航
Flutter Widget | Android View/Layout | 说明 |
---|---|---|
Scaffold | Activity + 页面根布局 | 页面基础骨架 |
AppBar | Toolbar | 顶部导航栏 |
BottomNavigationBar | BottomNavigationView | 底部导航栏 |
Drawer | DrawerLayout + NavigationView | 左右侧滑菜单 |
TabBar + TabBarView | TabLayout + ViewPager2 | 顶部 Tab 页面切换 |
Navigator + Route | FragmentManager / Intent | 页面导航系统 |
🎨 控件级对应(附加)
Flutter Widget | Android View | 说明 |
---|---|---|
Text | TextView | 显示文本 |
TextField | EditText | 输入框 |
ElevatedButton | Button | 默认按钮 |
IconButton | ImageButton | 图标按钮 |
Image | ImageView | 显示图片 |
Checkbox | CheckBox | 复选框 |
Radio | RadioButton | 单选按钮 |
Switch | Switch | 开关按钮 |
Slider | SeekBar | 滑动条 |
ProgressIndicator | ProgressBar | 进度条 |
AlertDialog | AlertDialog | 弹窗对话框 |
SnackBar | Toast / Snackbar | 底部提示 |
DropdownButton | Spinner | 下拉菜单 |
🧠 总结建议
- Flutter 更强调组合式声明性布局,Android 更偏向静态 XML。
- Flutter 的
Stack + Positioned
是最接近RelativeLayout
的实现方式。 - 灵活使用
Align
、Expanded
、Flexible
可以覆盖大部分 Android 布局需求。
相关文章:
Flutter 与 Android 原生布局组件对照表(完整版)
本对照表用于帮助 Android 开发者快速理解 Flutter 中的布局组件与原生布局的关系。 📘 Flutter ↔ Android 布局组件对照表 Flutter WidgetAndroid View/Layout说明ContainerFrameLayout / View通用容器,可设置背景、边距、对齐等RowLinearLayout (hor…...

【产品经理从0到1】自媒体端产品设计
后台的定义 “后台” 与“前台”都是相对独立的平台,前台是服务于互联网用户的平台 ,后台主要是支撑前台页面内容、数据及对前台业务情况的统计分析的系统; 后台与前台的区别 第1:使用用户不同 前台用户:互联网用户…...

017搜索之深度优先DFS——算法备赛
深度优先搜索 如果说广度优先搜索是逐层扩散,那深度优先搜索就是一条道走到黑。 深度优先遍历是用递归实现的,预定一条顺序规则(如上下左右顺序) ,一直往第一个方向搜索直到走到尽头或不满足要求后返回上一个叉路口按…...
解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]
目录 1. 问题描述 2. 排查思路 3. 设置-指定maven使用jdk21 4. 参考资料 1. 问题描述 在idea中使用maven编译时,在系统环境变量中已经设置了jdk为21,但是在执行mvn package时,确提示 Fatal error compiling: 无效的目标发行版: 21 -> [Help 1] [ERROR] Failed to e…...

Thinkphp6实现websocket
项目需要连接一台自动售货机,售货机要求两边用websocket连接,监听9997端口。本文实现了一个基于PHP的WebSocket服务器,用于连接自动售货机,支持start/stop/restart命令操作 1.新建文件 新建文件 /command/socket.php <?php namespace a…...

web-css
一.CSS选择器: 1.基础选择器 基本选择器: >.标签选择器 格式:标签名称{} >.类选择器(重) 格式:.class属性的值{} >.id选择器 格式:#id属性的值{} >.通配符(表示所有&am…...
关于 smali:2. 从 Java 到 Smali 的映射
一、对照 Java 代码与 Smali 代码差异 1.1 方法调用差异:Java vs Smali Java 方法分类: 方法类型Java 示例Smali 指令特点说明静态方法Utils.print("hi")invoke-static没有 this 指针实例方法obj.show()invoke-virtual有 this,虚…...

三、zookeeper 常用shell命令
作者:IvanCodes 日期:2025年5月28日 专栏:Zookeeper教程 ZooKeeper Shell (zkCli.sh) 是与ZooKeeper服务器交互的核心工具。本教程将详细介绍常用命令,并重点解析ZooKeeper数据节点 (ZNode) 的特性与分类。 思维导图 一、连接 Zo…...

分布式流处理与消息传递——Paxos Stream 算法详解
Java 实现 Paxos Stream 算法详解 一、Paxos Stream 核心设计 #mermaid-svg-cEJcmpaQwLXpEbx9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cEJcmpaQwLXpEbx9 .error-icon{fill:#552222;}#mermaid-svg-cEJcmpaQw…...
智变与重构:AI 赋能基础教育教学的范式转型研究报告
一、研究背景与核心价值 (一)技术驱动下的教育转型浪潮 在全球数字化转型加速的背景下,人工智能作为核心技术力量,正重塑基础教育生态。据《人工智能赋能未来教育研究报告》指出,我国教育数字化战略行动已推动超 70…...
平衡三进制
平衡三进制 - OI Wiki https://oi-wiki.org/math/balanced-ternary/ 上海市计算机学会竞赛平台 | YACS 方法一,先分离后进位 #include <iostream> using namespace std; int n, a[100], cnt; bool flag; int main() {cin >> n;if(n0){cout <<…...
针对Python开发的工具推荐及分析,涵盖集成开发环境(IDE)、轻量级工具、在线开发平台、代码管理工具等)
以下是针对Python开发的工具推荐及全面分析,涵盖集成开发环境(IDE)、轻量级工具、在线开发平台、代码管理工具等,结合不同场景和需求进行分类说明: 目录 一、集成开发环境(IDE) 1. PyCharm 2…...

960g轻薄本,把科技塞进巧克力盒子
朋友们,谁懂啊 最近本打工人被同事疯狂种草了一款 “巧克力盒子” 华硕灵耀 14 Air 骁龙版! 960g的重量比一瓶大可乐还轻 塞进通勤包毫无压力 连健身房的瑜伽垫都能多卷两圈 这台行走的生产力工具,到底有啥魔法? 今天就带…...

xcode 编译运行错误 Sandbox: rsync(29343) deny(1) file-write-create
解决方法 方法一:修改Targets -> Build Settings 中 ENABLE_USER_SCRIPT_SANDBOXING 设置 NO 方法二:项目使用cocoaPods进行三方管理 且 使用了 use_frameworks,把 use_frameworks 注释掉,然后重新自行pod install...

C# 基于 Windows 系统与 Visual Studio 2017 的 Messenger 消息传递机制详解:发布-订阅模式实现
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...

ComfyUI+阿里Wan2.1+内网穿透技术:本地AI视频生成系统搭建实战
文章目录 前言1.软件准备1.1 ComfyUI1.2 文本编码器1.3 VAE1.4 视频生成模型 2.整合配置3. 本地运行测试4. 公网使用Wan2.1模型生成视频4.1 创建远程连接公网地址 5. 固定远程访问公网地址总结 前言 各位技术爱好者,今天为您带来一组创新性的AI应用方案!…...
腾讯云开发者社区文章内容提取免费API接口教程
接口简介: 提取指定腾讯云开发者社区文章内容。本接口仅做内容提取,未经作者授权请勿转载。 请求地址: https://cn.apihz.cn/api/caiji/tencent.php 请求方式: POST或GET。 请求参数: 【名称】【参数】【必填】【说…...

利用海外代理IP,做Twitter2026年全球趋势数据分析
近年来,社交媒体趋势分析逐渐成为品牌监控、市场洞察和消费者研究的必备工具。而当谈到全球趋势数据分析,很多人都会立即想到 Twitter趋势(逼近连美丽国的总统都喜欢在上面发表自己的看法- -!!!)。Twitter趋势,即Twitt…...
OpenLayers 图形交互编辑
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 图形要素包括属性信息和几何信息,在实际应用中,不仅需要修改样式信息,也需要修改图形几何信息。在OpenLayers中&…...

pikachu靶场通关笔记06 XSS关卡02-反射型POST
目录 一、XSS 二、反射型XSS 三、POST型报文 四、GET型与POST型区别 五、代码审计 五、渗透实战 1、渗透方法1 2、渗透方法2 本系列为通过《pikachu靶场通关笔记》的XSS关卡(共10关)渗透集合,通过对XSS关卡源码的代码审计找到XSS风险的真实原因&…...

SQLiteStudio - 免费开源、轻量高效,跨平台的 SQLite 数据库管理工具,代替 Navicat for SQLite
管理 SQLite 数据库就用这款软件,真的早该摒弃破解和盗版的 Navicat 了。 SQLiteStudio 是一款专注于管理 SQLite 数据库 的桌面软件,用于浏览和编辑 SQLite 数据库文件。软件的作者是来自波兰的开发者 Paweł Salawa,他是一位拥有 20 年 Ja…...

Prometheus + Grafana + Cadvisor:构建高效企业级服务监控体系
在现代软件开发和运维领域,容器化技术的应用越来越广泛,其中 Docker 作为最受欢迎的容器化解决方案之一,其容器的监控管理变得至关重要。本文将详细介绍如何使用 cadvisor、Prometheus 和 Grafana 来监控 Docker 容器的状态。 一、安装镜像 …...

WEBSTORM前端 —— 第3章:移动 Web —— 第2节:空间转换、转化
目录 一、空间转换 1.空间转换 2.空间转换 – 平移 3.视距 perspective 4.空间 – 旋转 ③空间旋转——Z轴代码与效果视频 ④空间旋转——X轴代码与效果视频 ⑤空间旋转——Y轴代码与效果视频 5.立体呈现 – transform-style 案例 – 3D 导航 6.空间转换 – 缩放 …...

Java研学-MongoDB(一)
一 MongoDB 简介 MongoDB是一种高性能、开源的NoSQL数据库,采用面向文档的存储模型,以BSON(Binary JSON)格式存储数据,具有灵活的数据模型、强大的扩展性和丰富的功能特性,广泛应用于各类现代应用程序的数据…...

【AI面试秘籍】| 第25期:RAG的关键痛点及解决方案深度解析
今天我们来聊聊大模型领域一个非常火热的技术——RAG(Retrieval Augmented Generation)。RAG通过引入外部知识库,有效地缓解了大型语言模型(LLM)在处理知识密集型任务时可能出现的幻觉、知识过时等问题。然而ÿ…...
OpenGL、GLUT、freeGLUT 与 GLFW 的区别
在图形编程中,OpenGL 是最核心的渲染 API,但仅靠它本身无法完成窗口创建、事件处理等任务。因此,开发者通常会借助一些辅助库来简化开发流程。常见的库包括 GLUT、freeGLUT 和 GLFW。 本文将详细讲解这些技术之间的区别,并提供每…...

服务器带宽线路的区别(GIA、CN2、BGP、CMI等)
服务器带宽线路的区别(GIA、CN2、BGP、CMI等) 一、BGP线路 1. 定义与技术特点 BGP(Border Gateway Protocol,边界网关协议)是一种用于不同自治系统(AS)之间交换路由信息的协议,属…...

ppt一键制作:ai自动生成PPT,便捷高效超级精美!
深夜的台灯下,你对着杂乱的 PPT 内容反复刷新灵感,鼠标在字体、配色选项间来回穿梭,好不容易拼凑出的页面,却总透着浓浓的 “廉价感”;汇报在即,逻辑混乱的大纲改了又改,每一页感觉合适又不搭&a…...
多方法解决MNIST数字识别
全连接层 import torch from torchvision import datasets, transforms import torch.nn as nn import torch.optim as optim from tqdm import tqdm # 用于进度条显示 import os# 定义数据预处理(标准化+Tensor转换) transform = transforms.Compose([transforms.ToTensor…...

Maven(黑马)
Maven 是一个强大的项目管理和构建自动化工具,主要用于 Java 项目的构建、依赖管理和文档生成。它通过使用 POM(Project Object Model)文件来管理项目的配置和依赖关系,从而实现项目的自动化构建和管理。以下是 Maven 的一些核心概…...