本对照表用于帮助 Android 开发者快速理解 Flutter 中的布局组件与原生布局的关系。
📘 Flutter ↔ Android 布局组件对照表
Flutter Widget Android 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 Widget Android View/Layout 说明 SingleChildScrollViewScrollView单个滚动子项 ListViewListView / RecyclerView垂直滚动列表 GridViewGridView / RecyclerView + GridLayoutManager网格布局 PageViewViewPager2翻页组件 CustomScrollView + SliversRecyclerView + 多类型 ViewType自定义滚动内容
🔧 复杂布局、定位、对齐
Flutter Widget Android View/Layout 说明 RelativeLayout 等效无直接对应(但以下组合可实现) Stack + PositionedRelativeLayout + rules实现子元素相对布局 AlignRelativeLayout + alignParentX/Y单个子项对齐 LayoutBuilderonMeasure() + 自定义布局根据父布局约束决定子布局 CustomMultiChildLayoutViewGroup + onLayout()自定义多个子控件位置 FractionallySizedBox百分比布局(无直接原生对应) 占父布局一定比例 Positioned.fillmatch_parent填满父容器 OverflowBoxclipChildren=false允许子项溢出父容器
🧩 页面结构与导航
Flutter Widget Android View/Layout 说明 ScaffoldActivity + 页面根布局页面基础骨架 AppBarToolbar顶部导航栏 BottomNavigationBarBottomNavigationView底部导航栏 DrawerDrawerLayout + NavigationView左右侧滑菜单 TabBar + TabBarViewTabLayout + ViewPager2顶部 Tab 页面切换 Navigator + RouteFragmentManager / Intent页面导航系统
🎨 控件级对应(附加)
Flutter Widget Android View 说明 TextTextView显示文本 TextFieldEditText输入框 ElevatedButtonButton默认按钮 IconButtonImageButton图标按钮 ImageImageView显示图片 CheckboxCheckBox复选框 RadioRadioButton单选按钮 SwitchSwitch开关按钮 SliderSeekBar滑动条 ProgressIndicatorProgressBar进度条 AlertDialogAlertDialog弹窗对话框 SnackBarToast / Snackbar底部提示 DropdownButtonSpinner下拉菜单
🧠 总结建议
Flutter 更强调组合式声明性布局,Android 更偏向静态 XML。 Flutter 的 Stack + Positioned 是最接近 RelativeLayout 的实现方式。 灵活使用 Align、Expanded、Flexible 可以覆盖大部分 Android 布局需求。