Flutter 组件索引表,看看你有几个不知道!
前言
本文深入探讨Flutter中的各种组件,帮助开发者理解如何利用这些组件提升用户界面设计和开发效率。
参考
1. 基础组件
Text
- 显示一段带样式的文本。Row
-- 水平排列子组件。Column
-- 垂直排列子组件。Container
-- 一个带有内边距、外边距和装饰的盒子。Center
-- 用于将其子组件居中显示。Padding
-- 为子组件添加内边距。Align
-- 在自身内部对齐子组件。Expanded
-- 扩展子组件以填满可用空间。Flexible
-- 允许子组件灵活调整大小。SizedBox
-- 一个具有固定尺寸的盒子。Spacer
-- 在弹性容器中占据空间。AspectRatio
-- 强制使用特定的宽高比。ConstrainedBox
-- 施加尺寸约束。Baseline
-- 按照子元素的基线对齐。FittedBox
-- 缩放并定位其子组件。FractionallySizedBox
-- 按父级比例调整子组件大小。IntrinsicHeight
/IntrinsicWidth
-- 强制子元素使用内在尺寸。LimitedBox
-- 在无约束时限制大小。Offstage
-- 隐藏子组件但不移除它。OverflowBox
-- 允许子组件超出父组件的边界。Transform
-- 对其子元素应用变换。
2. 布局组件
ListView
-- 可滚动的组件列表。GridView
-- 可滚动的控件网格。Stack
-- 重叠显示子组件。IndexedStack
-- 显示堆栈中的一个子元素。Flow
-- 使用流式逻辑的自定义布局。Table
-- 以表格形式排列子组件。Wrap
-- 如果需要,将子元素换行显示到下一行。ListBody
-- 以线性方式排列子组件。CustomScrollView
-- 可自定义的可滚动区域。SliverList
-- 在CustomScrollView
内的可滚动列表。SliverGrid
-- 在CustomScrollView
内部的可滚动网格。SliverAppBar
-- 可折叠的应用栏。SliverToBoxAdapter
-- 将非 Sliver 组件包装成 Sliver。SliverPadding
-- 在 Sliver 中添加内边距。SliverFillRemaining
-- 填充剩余的滚动空间。LayoutBuilder
-- 根据父级约束条件构建组件。SingleChildScrollView
-- 可滚动的单子级容器。SafeArea
-- 避开系统 UI 区域(刘海、状态栏)。
3. Material 和 Cupertino 小部件
MaterialApp
-- 设置一个 Material Design 应用程序。Scaffold
-- 基本的 Material Design 布局结构。AppBar
- 顶部应用栏,包含标题/操作按钮。BottomNavigationBar
-- 底部标签导航。TabBar
/TabBarView
-- 基于标签页的导航。Drawer
-- 侧边导航面板。FloatingActionButton
-- 用于主要操作的圆形按钮。SnackBar
-- 屏幕底部的临时消息。BottomSheet
-- 从底部向上滑动弹出。Card
- 具有阴影效果的 Material Design 卡片。Chip
- 紧凑型元素(例如,筛选标签)。Divider
-- 一条细水平线。ListTile
-- 一个固定高度的行(用于列表)。Stepper
-- 多步骤表单组件。DataTable
-- 以行和列的形式显示数据。CheckboxListTile
-- 带复选框的列表项。RadioListTile
-- 带单选按钮的列表项。SwitchListTile
-- 带开关的列表项。ExpansionTile
-- 可展开的列表项。CupertinoApp
-- iOS 风格的应用结构。CupertinoButton
-- iOS 风格按钮。CupertinoPicker
-- iOS 风格的旋转选择器。CupertinoSlider
-- iOS 风格的滑动条。CupertinoSwitch
-- iOS 风格的切换开关。CupertinoTabBar
-- iOS 风格的底部标签栏。CupertinoTextField
-- iOS 风格的文本输入。
4. 按钮与输入框
ElevatedButton
-- Material Design 浮动按钮。TextButton
-- 扁平文本按钮。OutlinedButton
-- 带轮廓的按钮。IconButton
- 带图标的按钮。DropdownButton
-- 显示一个下拉菜单。PopupMenuButton
-- 显示一个弹出菜单。ButtonBar
-- 在一行中排列按钮组。RawMaterialButton
-- 可自定义的底层按钮。Checkbox
-- 可切换的复选框。Radio
-- 单选按钮。Slider
- 可调节的值选择器。Switch
-- 切换开关。TextField
- 单行文本输入。TextFormField
-- 表单兼容的文本输入。Form
-- 管理表单状态和验证。RichText
-- 支持多种样式的文本。GestureDetector
-- 用于检测点击、滑动等手势操作。InkWell
-- 点击时显示材质设计水波纹效果。Dismissible
-- 可以向侧滑动移除。
5. 图像与图标
Image
- 用于显示图片。Icon
- 显示一个 Material/Cupertino 图标。CircleAvatar
- 圆形图像/图标。FadeInImage
-- 带有淡入效果的图片。NetworkImage
-- 从 URL 加载图像。AssetImage
-- 从资源中加载图片。RawImage
-- 低层级的图像显示。ImageIcon
- 显示来自图像的图标。Placeholder
-- 一个代表“待加载”内容的占位框。
6. 动画与动态效果
AnimatedContainer
-- 对尺寸/颜色变化进行动画处理。AnimatedCrossFade
-- 在两个子组件之间进行交叉渐变。AnimatedOpacity
-- 动画化不透明度的变化。AnimatedSize
-- 动画化尺寸变化。AnimatedPositioned
-- 在Stack
中对位置进行动画处理。AnimatedAlign
-- 动画显示对齐方式的变化。AnimatedBuilder
-- 自定义动画构建器。Hero
-- 屏幕之间的平滑过渡。TweenAnimationBuilder
-- 在两个值之间进行动画过渡。SlideTransition
-- 实现组件的滑动进入/退出效果。ScaleTransition
-- 用于放大/缩小一个组件。RotationTransition
-- 旋转一个组件。FadeTransition
-- 实现小部件的淡入/淡出效果。AnimatedList
-- 动态地为列表变化添加动画效果。AnimatedSwitcher
-- 带动画地在组件之间切换。
7. 导航与路由
Navigator
- 管理页面导航。MaterialPageRoute
- 标准的 Material 页面过渡效果。PageView
-- 可滚动的页面。TabController
- 控制标签页切换。WillPopScope
-- 拦截返回按钮点击事件。RouteObserver
-- 监听路由变化。
8. 对话框和提示
AlertDialog
-- 带有标题/内容/操作的弹出对话框。SimpleDialog
-- 带有一系列选项的对话框。Dialog
- 基础对话框容器。CupertinoAlertDialog
-- iOS 风格的弹窗。ModalBottomSheet
-- 从底部滑动弹出。AboutDialog
-- 显示应用信息。TimePickerDialog
- 让用户选择时间。DatePickerDialog
-- 让用户选择日期。
9. 状态管理组件
StatefulBuilder
-- 重建部件树的某一部分。InheritedWidget
-- 用于在组件树中向下共享数据。Provider
-- 简单的状态管理。Consumer
- 侦听Provider
的变化。Selector
-- 仅在需要时重新构建。ChangeNotifierProvider
-- 用于管理可变状态。FutureProvider
-- 提供一个Future
值。StreamProvider
-- 提供一个Stream
值。ValueListenableBuilder
-- 监听ValueListenable
。StreamBuilder
-- 从Stream
构建组件。FutureBuilder
-- 通过Future
构建组件。
10. 样式与主题
Theme
-- 为后代元素应用主题。MediaQuery
-- 用于访问屏幕尺寸/方向。DefaultTextStyle
-- 为后代文本设置默认样式。CustomPaint
-- 使用Canvas
进行自定义绘制。ClipRRect
-- 用圆角裁剪。ClipOval
-- 裁剪为椭圆形。ClipPath
-- 自定义形状裁剪。DecoratedBox
-- 应用装饰效果(例如渐变)。RotatedBox
-- 以 90° 为增量旋转子组件。BackdropFilter
-- 应用模糊/滤镜效果。ShaderMask
-- 应用着色器效果。PhysicalModel
-- 添加逼真的阴影效果。Material
-- Material Design 界面。
11. 无障碍功能
Semantics
-- 添加辅助功能标签。ExcludeSemantics
-- 移除子组件的语义信息。MergeSemantics
-- 合并后代组件的语义信息。Tooltip
-- 长按显示提示信息。
12. 高级 UI 组件
ReorderableListView
-- 可拖动重新排序的列表。Draggable
/DragTarget
-- 支持拖放功能。LongPressDraggable
-- 长按后可拖动。InteractiveViewer
-- 支持缩放/平移手势。IgnorePointer
-- 忽略触摸事件。AbsorbPointer
-- 拦截触摸事件。Opacity
-- 使子组件部分透明。Visibility
-- 显示或隐藏子组件。SelectableText
-- 可被选中/复制的文本。
13. 测试与调试
GoldenFileComparator
-- 将 UI 与黄金文件进行比较。TestWidgetsFlutterBinding
-- 测试框架设置。
14. 其他与工具组件
Builder
- 提供一个构建上下文。PageStorage
-- 保存/恢复滚动位置。NotificationListener
-- 监听滚动事件。KeepAlive
-- 防止屏幕外小部件被销毁。Autocomplete
-- 文本输入的自动建议。RefreshIndicator
-- 下拉刷新模式。
15. 流行的包组件
SvgPicture
(flutter_svg
)-- 用于渲染 SVG 图像。CachedNetworkImage
(cached_network_image
)-- 缓存网络图片。BlocBuilder
(flutter_bloc
)-- 根据 BLoC 状态构建 UI。CarouselSlider
(carousel_slider
) -- 图片轮播组件。FlutterMap
(flutter_map
) -- 交互式地图。
小结
Flutter是一款强大的跨平台开发框架,其丰富的组件库使开发者能够轻松创建精美的用户界面。通过掌握Flutter的各种组件,开发者不仅能提升应用的用户体验,还能显著提高开发效率。本文将帮助你深入理解Flutter组件的特性和应用,助力你的开发之旅。
感谢阅读本文
如果有什么建议,请在评论中让我知道。我很乐意改进。
猫哥 APP
flutter 学习路径
- Flutter 优秀插件推荐
- Flutter 基础篇1 - Dart 语言学习
- Flutter 基础篇2 - 快速上手
- Flutter 实战1 - Getx Woo 电商APP
- Flutter 实战2 - 上架指南 Apple Store、Google Play
- Flutter 基础篇3 - 仿微信朋友圈
- Flutter 实战3 - 腾讯即时通讯 第一篇
- Flutter 实战4 - 腾讯即时通讯 第二篇
© 猫哥 ducafecat.com
end