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 布局需求。
相关推荐
Lud_1 小时前
OpenGL ES 中的材质
android·材质·opengl es
恋猫de小郭2 小时前
Compose Hot Reload 为什么只支持桌面 JVM,它和 Live Edit 又有什么区别?
android·前端·flutter
移动开发者1号2 小时前
Android数据库连接泄露检测:解析与实战
android·kotlin
移动开发者1号2 小时前
SQLite FTS4全文搜索实战指南:从入门到优化
android·kotlin
锋风Fengfeng3 小时前
安卓官方版fat-aar:使用Fused Library将多个Android库发布为一个库
android
清霜之辰5 小时前
安卓AOP变天了?AspectJ的黄昏与KSP的崛起
android·aop·aspectj·ksp
猫头虎10 小时前
2025最新Python 100个常用函数在线体验项目
android·java·python·pycharm·django·pandas·pip
卖猪肉的痴汉11 小时前
3.1 Android NDK交叉编译FFmpeg
android·ffmpeg
CYRUS_STUDIO11 小时前
逆向某物 App 登录接口:还原 newSign 算法全流程
android·app·逆向
ybdesire12 小时前
MCPServer编程与CLINE配置调用MCP
android·java·数据库