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 的实现方式。
  • 灵活使用 AlignExpandedFlexible 可以覆盖大部分 Android 布局需求。
相关推荐
●VON4 分钟前
Flutter for OpenHarmony 21天训练营 Day03 总结:从学习到输出,迈出原创第一步
学习·flutter·openharmony·布局·技术
程序员清洒11 分钟前
Flutter for OpenHarmony:Text — 文本显示与样式控制
开发语言·javascript·flutter
雨季6661 小时前
Flutter 三端应用实战:OpenHarmony 简易“动态内边距调节器”交互模式深度解析
javascript·flutter·ui·交互·dart
冠希陈、1 小时前
PHP 判断是否是移动端,更新鸿蒙系统
android·开发语言·php
向哆哆2 小时前
构建跨端健身俱乐部管理系统:Flutter × OpenHarmony 的数据结构与设计解析
数据结构·flutter·鸿蒙·openharmony·开源鸿蒙
不爱吃糖的程序媛3 小时前
Flutter版本选择指南:3.38.10 发布,Flutter-OH何去何从?
flutter
2601_949809593 小时前
flutter_for_openharmony家庭相册app实战+相册详情实现
javascript·flutter·ajax
灰灰勇闯IT3 小时前
Flutter for OpenHarmony:弹窗与对话框(Dialog)—— 构建清晰的上下文交互
flutter·交互
晚霞的不甘3 小时前
Flutter for OpenHarmony从零到一:构建《冰火人》双人合作闯关游戏
android·flutter·游戏·前端框架·全文检索·交互
2601_949833393 小时前
flutter_for_openharmony口腔护理app实战+饮食记录实现
android·javascript·flutter