Flutter控件

Dart 控件

https://api.flutter.dev/flutter/widgets/widgets-library.html

Accessibility

组件名称名字 视频URL 组件英文描述
ExcludeSemantics https://api.flutter.dev/flutter/widgets/ExcludeSemantics-class.html 删除其子代的所有语义的小部件。这可以用来隐藏子窗口小部件,否则会被报告,但这只会让人困惑。例如,Material Components芯片小部件隐藏化身,因为它与芯片标签是冗余的。
MergeSemantics https://api.flutter.dev/flutter/widgets/MergeSemantics-class.html 合并其子代语义的小部件。
Semantics https://api.flutter.dev/flutter/widgets/Semantics-class.html 一个小部件,用小部件含义的描述对小部件树进行注释。可访问性工具、搜索引擎和其他语义分析软件用于确定应用程序的含义。

Animation and Motion

组件名称名字 视频URL 组件英文描述
AnimatedAlign https://api.flutter.dev/flutter/widgets/AnimatedAlign-class.html Align的动画版本,每当给定对齐方式发生更改时,它会在给定的持续时间内自动转换子对象的位置。
AnimatedBuilder https://api.flutter.dev/flutter/widgets/AnimatedBuilder-class.html 用于构建动画的通用小部件。对于希望将动画作为更大构建功能的一部分的更复杂的小部件,AnimatedBuilder非常有用。要使用AnimatedBuilder,只需构造小部件并向其传递一个builder函数。
AnimatedContainer https://api.flutter.dev/flutter/widgets/AnimatedContainer-class.html 在一段时间内逐渐改变其值的容器。
AnimatedCrossFade https://api.flutter.dev/flutter/widgets/AnimatedCrossFade-class.html 在两个给定的子对象之间交叉淡入淡出并在其大小之间设置自身动画的小部件。
AnimatedDefaultTextStyle https://api.flutter.dev/flutter/widgets/AnimatedDefaultTextStyle-class.html DefaultTextStyle的动画版本,在给定的持续时间内,只要给定的样式发生更改,就会自动转换默认文本样式(应用于没有显式样式的后代文本小部件的文本样式)。
AnimatedListState https://api.flutter.dev/flutter/widgets/AnimatedListState-class.html 滚动容器的状态,用于在插入或删除项目时设置项目动画。
AnimatedModalBarrier https://api.flutter.dev/flutter/widgets/AnimatedModalBarrier-class.html 阻止用户与自身后面的小部件交互的小部件。
AnimatedOpacity https://api.flutter.dev/flutter/widgets/AnimatedOpacity-class.html 不透明度的动画版本,当给定的不透明度更改时,该版本会在给定的持续时间内自动转换子对象的不透明度。
AnimatedPhysicalModel https://api.flutter.dev/flutter/widgets/AnimatedPhysicalModel-class.html PhysicalModel的动画版本。
AnimatedPositioned https://api.flutter.dev/flutter/widgets/AnimatedPositioned-class.html Posited的动画版本,在给定的持续时间内,只要给定的位置发生变化,就会自动变换孩子的位置。
AnimatedSize https://api.flutter.dev/flutter/widgets/AnimatedSize-class.html 动画小部件,在给定的时间内,只要给定的孩子的大小发生变化,它就会自动转换其大小。
AnimatedWidget https://api.flutter.dev/flutter/widgets/AnimatedWidget-class.html 当给定的Listenable值更改时重建的小部件。
AnimatedWidgetBaseState https://api.flutter.dev/flutter/widgets/AnimatedWidgetBaseState-class.html 具有隐式动画的小部件的基类。
DecoratedBoxTransition https://api.flutter.dev/flutter/widgets/DecoratedBoxTransition-class.html 装饰框的动画版本,用于为其装饰的不同属性设置动画。
FadeTransition https://api.flutter.dev/flutter/widgets/FadeTransition-class.html 设置小部件不透明度的动画。
Hero https://api.flutter.dev/flutter/widgets/Hero-class.html 将其子对象标记为英雄动画候选对象的小部件。
PositionedTransition https://api.flutter.dev/flutter/widgets/PositionedTransition-class.html Posited的动画版本,使用特定动画在动画的生命周期内将子对象的位置从开始位置过渡到结束位置。
RotationTransition https://api.flutter.dev/flutter/widgets/RotationTransition-class.html 设置小部件旋转的动画。
ScaleTransition https://api.flutter.dev/flutter/widgets/ScaleTransition-class.html 设置变换小部件的缩放动画。
SizeTransition https://api.flutter.dev/flutter/widgets/SizeTransition-class.html 设置其自身大小和剪辑的动画,并对齐子对象。
SlideTransition https://api.flutter.dev/flutter/widgets/SlideTransition-class.html 设置小部件相对于其正常位置的位置动画。

Assets, Images, and Icons

组件名称名字 视频URL 组件英文描述
AssetBundle https://api.flutter.dev/flutter/services/AssetBundle-class.html 资产包包含应用程序可以使用的资源,如图像和字符串。对这些资源的访问是异步的,因此可以通过网络(例如,从NetworkAssetBundle)或本地文件系统透明地加载它们,而不会阻塞应用程序的用户界面。
Icon https://api.flutter.dev/flutter/widgets/Icon-class.html 材质设计图标。
Image https://api.flutter.dev/flutter/widgets/Image-class.html 显示图像的小部件。
RawImage https://api.flutter.dev/flutter/widgets/RawImage-class.html 直接显示dart:ui.Image的小部件。

Async

组件名称名字 视频URL 组件英文描述
FutureBuilder https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html 基于与未来交互的最新快照构建自身的小部件。
StreamBuilder https://api.flutter.dev/flutter/widgets/StreamBuilder-class.html 基于与流交互的最新快照构建自身的小部件。

Basics

组件名称名字 视频URL 组件英文描述
Appbar https://api.flutter.dev/flutter/material/AppBar-class.html 材质设计应用程序栏。应用程序栏由工具栏和其他可能的小部件组成,如选项卡栏和FlexibleSpaceBar。
Column https://api.flutter.dev/flutter/widgets/Column-class.html 在垂直方向上布局子窗口小部件的列表。
Container https://api.flutter.dev/flutter/widgets/Container-class.html 一个方便的小部件,它结合了常见的绘制、定位和大小调整小部件。
ElevatedButton https://api.flutter.dev/flutter/material/ElevatedButton-class.html 一种材料设计的按钮。一种填充按钮,按下时其材料会升高。
FlutterLogo https://api.flutter.dev/flutter/material/FlutterLogo-class.html 小部件形式的颤振徽标。此小部件尊重IconTheme。
Icon https://api.flutter.dev/flutter/widgets/Icon-class.html 材质设计图标。
Image https://api.flutter.dev/flutter/widgets/Image-class.html 显示图像的小部件。
Placeholder https://api.flutter.dev/flutter/widgets/Placeholder-class.html 一个小部件,它绘制一个框,表示有一天其他小部件将添加到何处。
Row https://api.flutter.dev/flutter/widgets/Row-class.html 在水平方向上布局子窗口小部件的列表。
Scaffold https://api.flutter.dev/flutter/material/Scaffold-class.html 实现了可视化的物料布局设计。此类提供了用于显示抽屉、快餐店和底页的API。
Text https://api.flutter.dev/flutter/widgets/Text-class.html 具有单一样式的一系列文本。

Cupertino (iOS-style widgets)

组件名称名字 视频URL 组件英文描述
CupertinoActionSheet https://api.flutter.dev/flutter/cupertino/CupertinoActionSheet-class.html iOS风格的模式底部操作表,用于在众多选项中选择一个选项。
CupertinoActivityIndicator https://api.flutter.dev/flutter/cupertino/CupertinoActivityIndicator-class.html iOS风格的活动指示器。显示圆形“微调器”。
CupertinoAlertDialog https://api.flutter.dev/flutter/cupertino/CupertinoAlertDialog-class.html iOS样式的警报对话框。
CupertinoButton https://api.flutter.dev/flutter/cupertino/CupertinoButton-class.html iOS风格的按钮。
CupertinoContextMenu https://api.flutter.dev/flutter/cupertino/CupertinoContextMenu-class.html 长按孩子时打开的iOS风格的全屏模式路由。用于显示内容的相关操作。
CupertinoDatePicker https://api.flutter.dev/flutter/cupertino/CupertinoDatePicker-class.html iOS样式的日期或日期和时间选择器。
CupertinoDialog https://api.flutter.dev/flutter/cupertino/CupertinoDialog-class.html 一个iOS风格的对话框。
CupertinoDialogAction https://api.flutter.dev/flutter/cupertino/CupertinoDialogAction-class.html 一种按钮,通常用在CupertinoAlertDialog中。
CupertinoFullscreenDialogTransition https://api.flutter.dev/flutter/cupertino/CupertinoFullscreenDialogTransition-class.html 用于调用全屏对话框的iOS风格转换。
CupertinoNavigationBar https://api.flutter.dev/flutter/cupertino/CupertinoNavigationBar-class.html iOS风格的顶部导航栏。通常与CupertinoPageScaffold一起使用。
CupertinoPageScaffold https://api.flutter.dev/flutter/cupertino/CupertinoPageScaffold-class.html 基本的iOS风格页面布局结构。将导航栏和内容放置在背景上。
CupertinoPageTransition https://api.flutter.dev/flutter/cupertino/CupertinoPageTransition-class.html 提供iOS样式的页面转换动画。
CupertinoPicker https://api.flutter.dev/flutter/cupertino/CupertinoPicker-class.html iOS风格的选择器控件。用于选择短列表中的项目。
CupertinoPopupSurface https://api.flutter.dev/flutter/cupertino/CupertinoPopupSurface-class.html 圆形矩形表面,看起来像iOS弹出式界面,如警报对话框或操作表。
CupertinoScrollbar https://api.flutter.dev/flutter/cupertino/CupertinoScrollbar-class.html 一个iOS风格的滚动条,指示当前可见的可滚动小部件的哪个部分。
CupertinoSearchTextField https://api.flutter.dev/flutter/cupertino/CupertinoSearchTextField-class.html iOS风格的搜索字段。
CupertinoSegmentedControl https://api.flutter.dev/flutter/cupertino/CupertinoSegmentedControl-class.html iOS风格的分段控件。用于在水平列表中选择相互排斥的选项。
CupertinoSlider https://api.flutter.dev/flutter/cupertino/CupertinoSlider-class.html 用于从一系列值中进行选择。
CupertinoSlidingSegmentedControl https://api.flutter.dev/flutter/cupertino/CupertinoSlidingSegmentedControl-class.html iOS-13风格的分段控件。用于在水平列表中选择相互排斥的选项。
CupertinoSliverNavigationBar https://api.flutter.dev/flutter/cupertino/CupertinoSliverNavigationBar-class.html 一个iOS风格的导航栏,带有iOS-11风格的大标题,使用条子。
CupertinoSwitch https://api.flutter.dev/flutter/cupertino/CupertinoSwitch-class.html iOS风格的开关。用于切换单个设置的开/关状态。
CupertinoTabBar https://api.flutter.dev/flutter/cupertino/CupertinoTabBar-class.html iOS样式的底部选项卡栏。通常与Cupertinobsaffold一起使用。
CupertinoTabScaffold https://api.flutter.dev/flutter/cupertino/CupertinoTabScaffold-class.html 选项卡式iOS应用程序结构。将选项卡栏放置在内容选项卡的顶部。
CupertinoTabView https://api.flutter.dev/flutter/cupertino/CupertinoTabView-class.html 支持选项卡间并行导航的选项卡的根内容。通常与Cupertinobsaffold一起使用。
CupertinoTextField https://api.flutter.dev/flutter/cupertino/CupertinoTextField-class.html iOS样式的文本字段。
CupertinoTimerPicker https://api.flutter.dev/flutter/cupertino/CupertinoTimerPicker-class.html iOS风格的倒计时计时器选择器。

Input

组件名称名字 视频URL 组件英文描述
Autocomplete https://api.flutter.dev/flutter/material/Autocomplete-class.html 通过输入一些文本并从选项列表中进行选择,帮助用户进行选择的小部件。
Form https://api.flutter.dev/flutter/widgets/Form-class.html 用于将多个表单字段小部件(例如TextField小部件)组合在一起的可选容器。
FormField https://api.flutter.dev/flutter/widgets/FormField-class.html 单个表单字段。此小部件维护表单字段的当前状态,以便在UI中直观地反映更新和验证错误。
RawKeyboardListener https://api.flutter.dev/flutter/widgets/RawKeyboardListener-class.html 每当用户按下或释放键盘上的键时调用回调的小部件。

Interaction Models

组件名称名字 视频URL 组件英文描述

Touch interactions

组件名称名字 视频URL 组件英文描述
AbsorbPointer https://api.flutter.dev/flutter/widgets/AbsorbPointer-class.html 在命中测试期间吸收指针的小部件。如果为true,此小部件通过终止自身的命中测试来防止其子树接收指针事件。在布局过程中,它仍然会消耗空间,并像往常一样绘制其子对象。它只是防止其子级成为定位事件的目标,因为它从RenderBox.hitTest返回true。
Dismissible https://api.flutter.dev/flutter/widgets/Dismissible-class.html 一种小部件,可通过沿指示方向拖动来解除。将此小部件向相反方向拖动或投掷会导致子部件滑出视图。在幻灯片动画之后,如果resizeDuration为非null,则Dismissible小部件会在resizeDuration期间将其高度(或宽度,以与Dismissive方向垂直的为准)动画设置为零。
DragTarget https://api.flutter.dev/flutter/widgets/DragTarget-class.html 当可拖动小部件被丢弃时接收数据的小部件。当在拖动目标上拖动拖动表时,将询问拖动目标是否接受拖动表所承载的数据。如果用户确实将可拖动对象放置在拖动目标的顶部(并且拖动目标已指示它将接受可拖动对象的数据),则会要求拖动目标接受可拖动对象的数据。
Draggable https://api.flutter.dev/flutter/widgets/Draggable-class.html 可以从拖动到拖动目标的小部件。当可拖动小部件识别拖动手势的开始时,它会显示一个反馈小部件,在屏幕上跟踪用户的手指。如果用户在DragTarget上抬起手指,则该目标将有机会接受DragTable携带的数据。
DraggableScrollableSheet https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html 一种可滚动文件的容器,通过调整可滚动文件的大小直到达到限制,然后滚动来响应拖动手势。
GestureDetector https://api.flutter.dev/flutter/widgets/GestureDetector-class.html 检测手势的小部件。尝试识别与其非空回调相对应的手势。如果这个小部件有一个子部件,它将根据该子部件的大小调整行为。如果它没有子对象,则会成长为适合父对象。
IgnorePointer https://api.flutter.dev/flutter/widgets/IgnorePointer-class.html 在命中测试期间不可见的小部件。如果忽略为true,则此小部件(及其子树)对命中测试不可见。在布局过程中,它仍然会消耗空间,并像往常一样绘制其子对象。它不能成为定位事件的目标,因为它从RenderBox.hitTest返回false。
InteractiveViewer https://api.flutter.dev/flutter/widgets/InteractiveViewer-class.html 一个小部件,可与子部件进行平移和缩放交互。
LongPressDraggable https://api.flutter.dev/flutter/widgets/LongPressDraggable-class.html 从长按开始,使其子项可拖动。
Scrollable https://api.flutter.dev/flutter/widgets/Scrollable-class.html Scrollable实现了可滚动小部件的交互模型,包括手势识别,但对实际显示子对象的视口的构造方式没有意见。

Routing

组件名称名字 视频URL 组件英文描述
Hero https://api.flutter.dev/flutter/widgets/Hero-class.html 将其子对象标记为英雄动画候选对象的小部件。
Navigator https://api.flutter.dev/flutter/widgets/Navigator-class.html 使用堆栈规程管理一组子小部件的小部件。许多应用程序在其小部件层次结构的顶部附近有一个导航器,可以使用覆盖显示其逻辑历史,最近访问的页面可视地显示在旧页面的顶部。使用此模式,导航器可以通过在覆盖中移动窗口小部件,直观地从一个页面过渡到另一个页面。类似地,导航器可以通过将对话框小部件定位在当前页面上方来显示对话框。

Layout

组件名称名字 视频URL 组件英文描述

Single-child layout widgets

组件名称名字 视频URL 组件英文描述
Align https://api.flutter.dev/flutter/widgets/Align-class.html 一个小部件,它将其子部件与自身对齐,并根据子部件的大小选择调整自身大小。
AspectRatio https://api.flutter.dev/flutter/widgets/AspectRatio-class.html 一种小部件,尝试将子对象的大小调整为特定的纵横比。
Baseline https://api.flutter.dev/flutter/widgets/Baseline-class.html 根据子对象的基线定位其子对象的小部件。
Center https://api.flutter.dev/flutter/widgets/Center-class.html 一个小部件,它将其子部件集中在自己内部。
ConstrainedBox https://api.flutter.dev/flutter/widgets/ConstrainedBox-class.html 对其子项施加附加约束的小部件。
Container https://api.flutter.dev/flutter/widgets/Container-class.html 一个方便的小部件,它结合了常见的绘制、定位和大小调整小部件。
CustomSingleChildLayout https://api.flutter.dev/flutter/widgets/CustomSingleChildLayout-class.html 将其单个子级的布局推迟到委托的小部件。
Expanded https://api.flutter.dev/flutter/widgets/Expanded-class.html 展开行、列或Flex的子项的小部件。
FittedBox https://api.flutter.dev/flutter/widgets/FittedBox-class.html 根据适合度在其子对象内部缩放和定位。
FractionallySizedBox https://api.flutter.dev/flutter/widgets/FractionallySizedBox-class.html 一种小部件,其子部件的大小为总可用空间的一小部分。有关RenderFlowBox算法的详细信息,请参见RenderFlowBox。
IntrinsicHeight https://api.flutter.dev/flutter/widgets/IntrinsicHeight-class.html 一种小部件,可根据子部件的固有高度调整其子部件的大小。
IntrinsicWidth https://api.flutter.dev/flutter/widgets/IntrinsicWidth-class.html 一个小部件,它将其子对象的大小调整为子对象的固有宽度。
LimitedBox https://api.flutter.dev/flutter/widgets/LimitedBox-class.html 只有在不受约束的情况下才限制其大小的长方体。
Offstage https://api.flutter.dev/flutter/widgets/Offstage-class.html 一个小部件,它可以像在树上一样布置子对象,但不绘制任何内容,不使子对象可用于命中测试,也不占用父对象中的任何空间。
OverflowBox https://api.flutter.dev/flutter/widgets/OverflowBox-class.html 一个小部件,它对其子部件施加的约束与其从父部件获得的约束不同,可能允许子部件溢出父部件。
Padding https://api.flutter.dev/flutter/widgets/Padding-class.html 通过给定的填充插入其子项的小部件。
SizedBox https://api.flutter.dev/flutter/widgets/SizedBox-class.html 具有指定大小的盒子。如果给定一个子部件,该小部件将强制其子部件具有特定的宽度和/或高度(假设该小部件的父部件允许该值)。如果宽度或高度为空,此小部件将调整自身大小以匹配该维度中的子对象大小。
SizedOverflowBox https://api.flutter.dev/flutter/widgets/SizedOverflowBox-class.html 具有特定大小的小部件,但将其原始约束传递给其子部件,这可能会溢出。
Transform https://api.flutter.dev/flutter/widgets/Transform-class.html 在绘制其子对象之前应用转换的小部件。

Multi-child layout widgets

组件名称名字 视频URL 组件英文描述
Column https://api.flutter.dev/flutter/widgets/Column-class.html 在垂直方向上布局子窗口小部件的列表。
CustomMultiChildLayout https://api.flutter.dev/flutter/widgets/CustomMultiChildLayout-class.html 一种小部件,使用委托来调整和定位多个子项。
Flow https://api.flutter.dev/flutter/widgets/Flow-class.html 实现流布局算法的小部件。
GridView https://api.flutter.dev/flutter/widgets/GridView-class.html 网格列表由以垂直和水平布局排列的单元格的重复模式组成。GridView小部件实现了这个组件。
IndexedStack https://api.flutter.dev/flutter/widgets/IndexedStack-class.html 显示子项列表中单个子项的堆栈。
LayoutBuilder https://api.flutter.dev/flutter/widgets/LayoutBuilder-class.html 根据父窗口小部件的大小构建窗口小部件树。
ListBody https://api.flutter.dev/flutter/widgets/ListBody-class.html 一种小部件,它沿给定的轴顺序排列其子部件,迫使它们位于另一个轴上父部件的尺寸。
ListView https://api.flutter.dev/flutter/widgets/ListView-class.html 可滚动的线性小部件列表。ListView是最常用的滚动小部件。它在滚动方向上一个接一个地显示其子对象。在横轴中,子对象需要填充ListView。
Row https://api.flutter.dev/flutter/widgets/Row-class.html 在水平方向上布局子窗口小部件的列表。
Stack https://api.flutter.dev/flutter/widgets/Stack-class.html 如果您希望以简单的方式重叠多个子对象,例如使用渐变和底部附加的按钮覆盖一些文本和图像,则此类非常有用。
Table https://api.flutter.dev/flutter/widgets/Table-class.html 为其子级使用表布局算法的小部件。
Wrap https://api.flutter.dev/flutter/widgets/Wrap-class.html 在多个水平或垂直运行中显示其子项的小部件。

Sliver widgets

组件名称名字 视频URL 组件英文描述
CupertinoSliverNavigationBar https://api.flutter.dev/flutter/cupertino/CupertinoSliverNavigationBar-class.html 一个iOS风格的导航栏,带有iOS-11风格的大标题,使用条子。
CustomScrollView https://api.flutter.dev/flutter/widgets/CustomScrollView-class.html 使用狭缝创建自定义滚动效果的滚动视图。
SliverAppBar https://api.flutter.dev/flutter/material/SliverAppBar-class.html 与CustomScrollView集成的材质设计应用程序栏。
SliverChildBuilderDelegate https://api.flutter.dev/flutter/widgets/SliverChildBuilderDelegate-class.html 使用生成器回调为片段提供子对象的委托。
SliverChildListDelegate https://api.flutter.dev/flutter/widgets/SliverChildListDelegate-class.html 使用显式列表为碎片提供子对象的委托。
SliverFixedExtentList https://api.flutter.dev/flutter/widgets/SliverFixedExtentList-class.html 在线性阵列中放置具有相同主轴范围的多个长方体子对象的小条。
SliverGrid https://api.flutter.dev/flutter/widgets/SliverGrid-class.html 在二维排列中放置多个盒子子对象的条子。
SliverList https://api.flutter.dev/flutter/widgets/SliverList-class.html 沿主轴将多个长方体子对象放置在线性阵列中的小条。
SliverPadding https://api.flutter.dev/flutter/widgets/SliverPadding-class.html 在另一条棉条的每一面上加衬垫的棉条。
SliverPersistentHeader https://api.flutter.dev/flutter/widgets/SliverPersistentHeader-class.html 当条子滚动到与条子生长方向相反的视口边缘时,其大小会发生变化的条子。
SliverToBoxAdapter https://api.flutter.dev/flutter/widgets/SliverToBoxAdapter-class.html 包含单个框小部件的小部件。

Material Components

组件名称名字 视频URL 组件英文描述

App structure and navigation

组件名称名字 视频URL 组件英文描述
Appbar https://api.flutter.dev/flutter/material/AppBar-class.html 材质设计应用程序栏。应用程序栏由工具栏和其他可能的小部件组成,如选项卡栏和FlexibleSpaceBar。
BottomNavigationBar https://api.flutter.dev/flutter/material/BottomNavigationBar-class.html 底部导航栏可以轻松地在一次点击中浏览和切换顶级视图。BottomNavigationBar小部件实现此组件。
Drawer https://api.flutter.dev/flutter/material/Drawer-class.html 从脚手架边缘水平滑入的材质设计面板,用于显示应用程序中的导航链接。
MaterialApp https://api.flutter.dev/flutter/material/MaterialApp-class.html 一个方便的小部件,它封装了实现材质设计的应用程序通常需要的许多小部件。
Scaffold https://api.flutter.dev/flutter/material/Scaffold-class.html 实现了可视化的物料布局设计。此类提供了用于显示抽屉、快餐店和底页的API。
SliverAppBar https://api.flutter.dev/flutter/material/SliverAppBar-class.html 与CustomScrollView集成的材质设计应用程序栏。
TabBar https://api.flutter.dev/flutter/material/TabBar-class.html 显示水平行选项卡的材质设计小部件。
TabBarView https://api.flutter.dev/flutter/material/TabBarView-class.html 显示与当前所选选项卡相对应的小部件的页面视图。通常与选项卡栏结合使用。
TabController https://api.flutter.dev/flutter/material/TabController-class.html 在选项卡栏和选项卡栏视图之间协调选项卡选择。
TabPageSelector https://api.flutter.dev/flutter/material/TabPageSelector-class.html 显示一行小圆形指示器,每个选项卡一个。所选选项卡的指示器将高亮显示。通常与TabBarView结合使用。
WidgetsApp https://api.flutter.dev/flutter/widgets/WidgetsApp-class.html 一个方便类,它封装了应用程序通常需要的许多小部件。

Buttons

组件名称名字 视频URL 组件英文描述
DropdownButton https://api.flutter.dev/flutter/material/DropdownButton-class.html 显示当前选定的项目和箭头,箭头打开用于选择其他项目的菜单。
ElevatedButton https://api.flutter.dev/flutter/material/ElevatedButton-class.html 一种材料设计的按钮。一种填充按钮,按下时其材料会升高。
FloatingActionButton https://api.flutter.dev/flutter/material/FloatingActionButton-class.html 浮动操作按钮是一个圆形图标按钮,它悬停在内容上,以提升应用程序中的主要操作。浮动操作按钮最常用于Scaffold.floatingActionButton字段。
IconButton https://api.flutter.dev/flutter/material/IconButton-class.html 图标按钮是打印在材质小部件上的图片,通过填充颜色(墨水)对触摸作出反应。
OutlinedButton https://api.flutter.dev/flutter/material/OutlinedButton-class.html 一种材料设计的轮廓按钮,本质上是一个带有轮廓边框的文本按钮。
PopupMenuButton https://api.flutter.dev/flutter/material/PopupMenuButton-class.html 按下时显示菜单,由于选择了某个项目而取消菜单时调用onSelected。
TextButton https://api.flutter.dev/flutter/material/TextButton-class.html 材质设计文本按钮。没有边框轮廓的简单平面按钮。

Input and selections

组件名称名字 视频URL 组件英文描述
Checkbox https://api.flutter.dev/flutter/material/Checkbox-class.html 复选框允许用户从集合中选择多个选项。复选框小部件实现了这个组件。
Date & Time Pickers https://api.flutter.dev/flutter/material/showDatePicker.html 日期选择器使用对话框窗口在手机上选择单个日期。时间选择器使用对话框在手机上选择单个时间(小时:分钟格式)。
Radio https://api.flutter.dev/flutter/material/Radio-class.html 单选按钮允许用户从集合中选择一个选项。如果您认为用户需要并排查看所有可用选项,请使用单选按钮进行独占选择。
Slider https://api.flutter.dev/flutter/material/Slider-class.html 滑块允许用户通过移动滑块拇指从一系列值中进行选择。
Switch https://api.flutter.dev/flutter/material/Switch-class.html 打开/关闭开关切换单个设置选项的状态。Switch小部件实现了这个组件。
TextField https://api.flutter.dev/flutter/material/TextField-class.html 触摸文本字段将放置光标并显示键盘。TextField小部件实现了这个组件。

Dialogs, alerts, and panels

组件名称名字 视频URL 组件英文描述
AlertDialog https://api.flutter.dev/flutter/material/AlertDialog-class.html 警报是需要确认的紧急中断,用于通知用户有关情况。AlertDialog小部件实现此组件。
BottomSheet https://api.flutter.dev/flutter/material/BottomSheet-class.html 底部纸张从屏幕底部向上滑动,以显示更多内容。可以调用showBottomSheet()来实现持久的底部工作表,也可以调用showModalBottomSheet()来实现模式的底部工作表。
ExpansionPanel https://api.flutter.dev/flutter/material/ExpansionPanel-class.html 扩展面板包含创建流,并允许对元素进行轻量级编辑。ExpansionPanel小部件实现此组件。
SimpleDialog https://api.flutter.dev/flutter/material/SimpleDialog-class.html 简单对话框可以提供有关列表项的其他详细信息或操作。例如,它们可以显示头像图标,以澄清潜台词或正交动作(例如添加帐户)。
SnackBar https://api.flutter.dev/flutter/material/SnackBar-class.html 带有可选操作的轻量级消息,简要显示在屏幕底部。

Information displays

组件名称名字 视频URL 组件英文描述
Card https://api.flutter.dev/flutter/material/Card-class.html 材料设计卡。卡片有略微圆角和阴影。
Chip https://api.flutter.dev/flutter/material/Chip-class.html 一种材料设计芯片。芯片在小块中表示复杂的实体,例如触点。
CircularProgressIndicator https://api.flutter.dev/flutter/material/CircularProgressIndicator-class.html 物料设计循环进度指示器,旋转以指示应用程序正忙。
DataTable https://api.flutter.dev/flutter/material/DataTable-class.html 数据表显示原始数据集。它们通常出现在桌面企业产品中。DataTable小部件实现了这个组件。
GridView https://api.flutter.dev/flutter/widgets/GridView-class.html 网格列表由以垂直和水平布局排列的单元格的重复模式组成。GridView小部件实现了这个组件。
Icon https://api.flutter.dev/flutter/widgets/Icon-class.html 材质设计图标。
Image https://api.flutter.dev/flutter/widgets/Image-class.html 显示图像的小部件。
LinearProgressIndicator https://api.flutter.dev/flutter/material/LinearProgressIndicator-class.html 材质设计线性进度指示器,也称为进度条。
Tooltip https://api.flutter.dev/flutter/material/Tooltip-class.html 工具提示提供有助于解释按钮功能或其他用户界面操作的文本标签。将按钮包装在工具提示小部件中,以在小部件长按(或用户采取其他适当操作)时显示标签。

Layout

组件名称名字 视频URL 组件英文描述
Divider https://api.flutter.dev/flutter/material/Divider-class.html 一条一个逻辑像素厚的水平线,两边都有填充。
ListTile https://api.flutter.dev/flutter/material/ListTile-class.html 一个固定高度的行,通常包含一些文本以及前导或尾随图标。
Stepper https://api.flutter.dev/flutter/material/Stepper-class.html 材料设计步进程序小部件,显示一系列步骤的进度。

Painting and effects

组件名称名字 视频URL 组件英文描述
BackdropFilter https://api.flutter.dev/flutter/widgets/BackdropFilter-class.html 将过滤器应用于现有绘制内容,然后绘制子对象的小部件。这种效果相对昂贵,尤其是如果过滤器是非局部的,例如模糊。
ClipOval https://api.flutter.dev/flutter/widgets/ClipOval-class.html 一个小部件,它使用椭圆形剪辑其子对象。
ClipPath https://api.flutter.dev/flutter/widgets/ClipPath-class.html 使用路径剪辑其子对象的小部件。
ClipRect https://api.flutter.dev/flutter/widgets/ClipRect-class.html 使用矩形剪辑其子对象的小部件。
CustomPaint https://api.flutter.dev/flutter/widgets/CustomPaint-class.html 一个小部件,提供在绘制阶段绘制的画布。
DecoratedBox https://api.flutter.dev/flutter/widgets/DecoratedBox-class.html 在其子对象绘制之前或之后绘制装饰的小部件。
FractionalTranslation https://api.flutter.dev/flutter/widgets/FractionalTranslation-class.html 一种小部件,在绘制其子对象之前,应用以框大小的一小部分表示的转换。
Opacity https://api.flutter.dev/flutter/widgets/Opacity-class.html 使其子部件部分透明的小部件。
RotatedBox https://api.flutter.dev/flutter/widgets/RotatedBox-class.html 将其子部件旋转整数个四分之一圈的小部件。
Transform https://api.flutter.dev/flutter/widgets/Transform-class.html 在绘制其子对象之前应用转换的小部件。

Scrolling

组件名称名字 视频URL 组件英文描述
CustomScrollView https://api.flutter.dev/flutter/widgets/CustomScrollView-class.html 使用狭缝创建自定义滚动效果的滚动视图。
DraggableScrollableSheet https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html 一种可滚动文件的容器,通过调整可滚动文件的大小直到达到限制,然后滚动来响应拖动手势。
GridView https://api.flutter.dev/flutter/widgets/GridView-class.html 网格列表由以垂直和水平布局排列的单元格的重复模式组成。GridView小部件实现了这个组件。
ListView https://api.flutter.dev/flutter/widgets/ListView-class.html 可滚动的线性小部件列表。ListView是最常用的滚动小部件。它在滚动方向上一个接一个地显示其子对象。在横轴中,子对象需要填充ListView。
NestedScrollView https://api.flutter.dev/flutter/widgets/NestedScrollView-class.html 一种滚动视图,其中可以嵌套其他滚动视图,它们的滚动位置本质上是链接的。
NotificationListener https://api.flutter.dev/flutter/widgets/NotificationListener-class.html 侦听树上冒泡的通知的小部件。
PageView https://api.flutter.dev/flutter/widgets/PageView-class.html 一个可滚动的列表,可以一页一页地工作。
RefreshIndicator https://api.flutter.dev/flutter/material/RefreshIndicator-class.html 一种材质设计,用于刷新滚动条的包装。
ReorderableListView https://api.flutter.dev/flutter/material/ReorderableListView-class.html 用户可以通过拖动以交互方式重新排序其项的列表。
ScrollConfiguration https://api.flutter.dev/flutter/widgets/ScrollConfiguration-class.html 控制可滚动小部件在子树中的行为。
Scrollable https://api.flutter.dev/flutter/widgets/Scrollable-class.html Scrollable实现了可滚动小部件的交互模型,包括手势识别,但对实际显示子对象的视口的构造方式没有意见。
Scrollbar https://api.flutter.dev/flutter/material/Scrollbar-class.html 材质设计滚动条。滚动条指示可滚动小部件的哪个部分实际可见。
SingleChildScrollView https://api.flutter.dev/flutter/widgets/SingleChildScrollView-class.html 可以滚动单个小部件的框。当您有一个通常完全可见的框(例如时间选择器中的时钟面)时,此小部件非常有用,但如果容器在一个轴(滚动方向)上变得太小,则需要确保它可以滚动。

Styling

组件名称名字 视频URL 组件英文描述
MediaQuery https://api.flutter.dev/flutter/widgets/MediaQuery-class.html 建立子树,媒体查询在其中解析为给定数据。
Padding https://api.flutter.dev/flutter/widgets/Padding-class.html 通过给定的填充插入其子项的小部件。
Theme https://api.flutter.dev/flutter/material/Theme-class.html 将主题应用于子代小部件。主题描述应用程序的颜色和排版选择。

Text

组件名称名字 视频URL 组件英文描述
DefaultTextStyle https://api.flutter.dev/flutter/widgets/DefaultTextStyle-class.html 要应用于没有显式样式的子体文本小部件的文本样式。
RichText https://api.flutter.dev/flutter/widgets/RichText-class.html RichText小部件显示使用多种不同样式的文本。要显示的文本使用TextSpan对象树进行描述,每个对象都具有用于该子树的关联样式。根据布局约束的不同,文本可能会跨多行中断,也可能全部显示在同一行上。
Text https://api.flutter.dev/flutter/widgets/Text-class.html 具有单一样式的一系列文本。

Accessibility

组件名称名字 视频URL 组件英文描述
ExcludeSemantics https://api.flutter.dev/flutter/widgets/ExcludeSemantics-class.html A widget that drops all the semantics of its descendants. This can be used to hide subwidgets that would otherwise be reported but that would only be confusing. For example, the Material Components Chip widget hides the avatar since it is redundant with the chip label.
MergeSemantics https://api.flutter.dev/flutter/widgets/MergeSemantics-class.html A widget that merges the semantics of its descendants.
Semantics https://api.flutter.dev/flutter/widgets/Semantics-class.html A widget that annotates the widget tree with a description of the meaning of the widgets. Used by accessibility tools, search engines, and other semantic analysis software to determine the meaning of the application.

Animation and Motion

组件名称名字 视频URL 组件英文描述
AnimatedAlign https://api.flutter.dev/flutter/widgets/AnimatedAlign-class.html Animated version of Align which automatically transitions the child's position over a given duration whenever the given alignment changes.
AnimatedBuilder https://api.flutter.dev/flutter/widgets/AnimatedBuilder-class.html A general-purpose widget for building animations. AnimatedBuilder is useful for more complex widgets that wish to include animation as part of a larger build function. To use AnimatedBuilder, simply construct the widget and pass it a builder function.
AnimatedContainer https://api.flutter.dev/flutter/widgets/AnimatedContainer-class.html A container that gradually changes its values over a period of time.
AnimatedCrossFade https://api.flutter.dev/flutter/widgets/AnimatedCrossFade-class.html A widget that cross-fades between two given children and animates itself between their sizes.
AnimatedDefaultTextStyle https://api.flutter.dev/flutter/widgets/AnimatedDefaultTextStyle-class.html Animated version of DefaultTextStyle which automatically transitions the default text style (the text style to apply to descendant Text widgets without explicit style) over a given duration whenever the given style changes.
AnimatedListState https://api.flutter.dev/flutter/widgets/AnimatedListState-class.html The state for a scrolling container that animates items when they are inserted or removed.
AnimatedModalBarrier https://api.flutter.dev/flutter/widgets/AnimatedModalBarrier-class.html A widget that prevents the user from interacting with widgets behind itself.
AnimatedOpacity https://api.flutter.dev/flutter/widgets/AnimatedOpacity-class.html Animated version of Opacity which automatically transitions the child's opacity over a given duration whenever the given opacity changes.
AnimatedPhysicalModel https://api.flutter.dev/flutter/widgets/AnimatedPhysicalModel-class.html Animated version of PhysicalModel.
AnimatedPositioned https://api.flutter.dev/flutter/widgets/AnimatedPositioned-class.html Animated version of Positioned which automatically transitions the child's position over a given duration whenever the given position changes.
AnimatedSize https://api.flutter.dev/flutter/widgets/AnimatedSize-class.html Animated widget that automatically transitions its size over a given duration whenever the given child's size changes.
AnimatedWidget https://api.flutter.dev/flutter/widgets/AnimatedWidget-class.html A widget that rebuilds when the given Listenable changes value.
AnimatedWidgetBaseState https://api.flutter.dev/flutter/widgets/AnimatedWidgetBaseState-class.html A base class for widgets with implicit animations.
DecoratedBoxTransition https://api.flutter.dev/flutter/widgets/DecoratedBoxTransition-class.html Animated version of a DecoratedBox that animates the different properties of its Decoration.
FadeTransition https://api.flutter.dev/flutter/widgets/FadeTransition-class.html Animates the opacity of a widget.
Hero https://api.flutter.dev/flutter/widgets/Hero-class.html A widget that marks its child as being a candidate for hero animations.
PositionedTransition https://api.flutter.dev/flutter/widgets/PositionedTransition-class.html Animated version of Positioned which takes a specific Animation to transition the child's position from a start position to and end position over the lifetime of the animation.
RotationTransition https://api.flutter.dev/flutter/widgets/RotationTransition-class.html Animates the rotation of a widget.
ScaleTransition https://api.flutter.dev/flutter/widgets/ScaleTransition-class.html Animates the scale of transformed widget.
SizeTransition https://api.flutter.dev/flutter/widgets/SizeTransition-class.html Animates its own size and clips and aligns the child.
SlideTransition https://api.flutter.dev/flutter/widgets/SlideTransition-class.html Animates the position of a widget relative to its normal position.

Assets, Images, and Icons

组件名称名字 视频URL 组件英文描述
AssetBundle https://api.flutter.dev/flutter/services/AssetBundle-class.html Asset bundles contain resources, such as images and strings, that can be used by an application. Access to these resources is asynchronous so that they can be transparently loaded over a network (e.g., from a NetworkAssetBundle) or from the local file system without blocking the application's user interface.
Icon https://api.flutter.dev/flutter/widgets/Icon-class.html A Material Design icon.
Image https://api.flutter.dev/flutter/widgets/Image-class.html A widget that displays an image.
RawImage https://api.flutter.dev/flutter/widgets/RawImage-class.html A widget that displays a dart:ui.Image directly.

Async

组件名称名字 视频URL 组件英文描述
FutureBuilder https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html Widget that builds itself based on the latest snapshot of interaction with a Future.
StreamBuilder https://api.flutter.dev/flutter/widgets/StreamBuilder-class.html Widget that builds itself based on the latest snapshot of interaction with a Stream.

Basics

组件名称名字 视频URL 组件英文描述
Appbar https://api.flutter.dev/flutter/material/AppBar-class.html A Material Design app bar. An app bar consists of a toolbar and potentially other widgets, such as a TabBar and a FlexibleSpaceBar.
Column https://api.flutter.dev/flutter/widgets/Column-class.html Layout a list of child widgets in the vertical direction.
Container https://api.flutter.dev/flutter/widgets/Container-class.html A convenience widget that combines common painting, positioning, and sizing widgets.
ElevatedButton https://api.flutter.dev/flutter/material/ElevatedButton-class.html A Material Design elevated button. A filled button whose material elevates when pressed.
FlutterLogo https://api.flutter.dev/flutter/material/FlutterLogo-class.html The Flutter logo, in widget form. This widget respects the IconTheme.
Icon https://api.flutter.dev/flutter/widgets/Icon-class.html A Material Design icon.
Image https://api.flutter.dev/flutter/widgets/Image-class.html A widget that displays an image.
Placeholder https://api.flutter.dev/flutter/widgets/Placeholder-class.html A widget that draws a box that represents where other widgets will one day be added.
Row https://api.flutter.dev/flutter/widgets/Row-class.html Layout a list of child widgets in the horizontal direction.
Scaffold https://api.flutter.dev/flutter/material/Scaffold-class.html Implements the basic Material Design visual layout structure. This class provides APIs for showing drawers, snack bars, and bottom sheets.
Text https://api.flutter.dev/flutter/widgets/Text-class.html A run of text with a single style.

Cupertino (iOS-style widgets)

组件名称名字 视频URL 组件英文描述
CupertinoActionSheet https://api.flutter.dev/flutter/cupertino/CupertinoActionSheet-class.html An iOS-style modal bottom action sheet to choose an option among many.
CupertinoActivityIndicator https://api.flutter.dev/flutter/cupertino/CupertinoActivityIndicator-class.html An iOS-style activity indicator. Displays a circular 'spinner'.
CupertinoAlertDialog https://api.flutter.dev/flutter/cupertino/CupertinoAlertDialog-class.html An iOS-style alert dialog.
CupertinoButton https://api.flutter.dev/flutter/cupertino/CupertinoButton-class.html An iOS-style button.
CupertinoContextMenu https://api.flutter.dev/flutter/cupertino/CupertinoContextMenu-class.html An iOS-style full-screen modal route that opens when the child is long-pressed. Used to display relevant actions for your content.
CupertinoDatePicker https://api.flutter.dev/flutter/cupertino/CupertinoDatePicker-class.html An iOS-style date or date and time picker.
CupertinoDialog https://api.flutter.dev/flutter/cupertino/CupertinoDialog-class.html An iOS-style dialog.
CupertinoDialogAction https://api.flutter.dev/flutter/cupertino/CupertinoDialogAction-class.html A button typically used in a CupertinoAlertDialog.
CupertinoFullscreenDialogTransition https://api.flutter.dev/flutter/cupertino/CupertinoFullscreenDialogTransition-class.html An iOS-style transition used for summoning fullscreen dialogs.
CupertinoNavigationBar https://api.flutter.dev/flutter/cupertino/CupertinoNavigationBar-class.html An iOS-style top navigation bar. Typically used with CupertinoPageScaffold.
CupertinoPageScaffold https://api.flutter.dev/flutter/cupertino/CupertinoPageScaffold-class.html Basic iOS style page layout structure. Positions a navigation bar and content on a background.
CupertinoPageTransition https://api.flutter.dev/flutter/cupertino/CupertinoPageTransition-class.html Provides an iOS-style page transition animation.
CupertinoPicker https://api.flutter.dev/flutter/cupertino/CupertinoPicker-class.html An iOS-style picker control. Used to select an item in a short list.
CupertinoPopupSurface https://api.flutter.dev/flutter/cupertino/CupertinoPopupSurface-class.html Rounded rectangle surface that looks like an iOS popup surface, such as an alert dialog or action sheet.
CupertinoScrollbar https://api.flutter.dev/flutter/cupertino/CupertinoScrollbar-class.html An iOS-style scrollbar that indicates which portion of a scrollable widget is currently visible.
CupertinoSearchTextField https://api.flutter.dev/flutter/cupertino/CupertinoSearchTextField-class.html An iOS-style search field.
CupertinoSegmentedControl https://api.flutter.dev/flutter/cupertino/CupertinoSegmentedControl-class.html An iOS-style segmented control. Used to select mutually exclusive options in a horizontal list.
CupertinoSlider https://api.flutter.dev/flutter/cupertino/CupertinoSlider-class.html Used to select from a range of values.
CupertinoSlidingSegmentedControl https://api.flutter.dev/flutter/cupertino/CupertinoSlidingSegmentedControl-class.html An iOS-13-style segmented control. Used to select mutually exclusive options in a horizontal list.
CupertinoSliverNavigationBar https://api.flutter.dev/flutter/cupertino/CupertinoSliverNavigationBar-class.html An iOS-styled navigation bar with iOS-11-style large titles using slivers.
CupertinoSwitch https://api.flutter.dev/flutter/cupertino/CupertinoSwitch-class.html An iOS-style switch. Used to toggle the on/off state of a single setting.
CupertinoTabBar https://api.flutter.dev/flutter/cupertino/CupertinoTabBar-class.html An iOS-style bottom tab bar. Typically used with CupertinoTabScaffold.
CupertinoTabScaffold https://api.flutter.dev/flutter/cupertino/CupertinoTabScaffold-class.html Tabbed iOS app structure. Positions a tab bar on top of tabs of content.
CupertinoTabView https://api.flutter.dev/flutter/cupertino/CupertinoTabView-class.html Root content of a tab that supports parallel navigation between tabs. Typically used with CupertinoTabScaffold.
CupertinoTextField https://api.flutter.dev/flutter/cupertino/CupertinoTextField-class.html An iOS-style text field.
CupertinoTimerPicker https://api.flutter.dev/flutter/cupertino/CupertinoTimerPicker-class.html An iOS-style countdown timer picker.

Input

组件名称名字 视频URL 组件英文描述
Autocomplete https://api.flutter.dev/flutter/material/Autocomplete-class.html A widget for helping the user make a selection by entering some text and choosing from among a list of options.
Form https://api.flutter.dev/flutter/widgets/Form-class.html An optional container for grouping together multiple form field widgets (e.g. TextField widgets).
FormField https://api.flutter.dev/flutter/widgets/FormField-class.html A single form field. This widget maintains the current state of the form field, so that updates and validation errors are visually reflected in the UI.
RawKeyboardListener https://api.flutter.dev/flutter/widgets/RawKeyboardListener-class.html A widget that calls a callback whenever the user presses or releases a key on a keyboard.

Interaction Models

组件名称名字 视频URL 组件英文描述

Touch interactions

组件名称名字 视频URL 组件英文描述
AbsorbPointer https://api.flutter.dev/flutter/widgets/AbsorbPointer-class.html A widget that absorbs pointers during hit testing. When absorbing is true, this widget prevents its subtree from receiving pointer events by terminating hit testing at itself. It still consumes space during layout and paints its child as usual. It just prevents its children from being the target of located events, because it returns true from RenderBox.hitTest.
Dismissible https://api.flutter.dev/flutter/widgets/Dismissible-class.html A widget that can be dismissed by dragging in the indicated direction. Dragging or flinging this widget in the DismissDirection causes the child to slide out of view. Following the slide animation, if resizeDuration is non-null, the Dismissible widget animates its height (or width, whichever is perpendicular to the dismiss direction) to zero over the resizeDuration.
DragTarget https://api.flutter.dev/flutter/widgets/DragTarget-class.html A widget that receives data when a Draggable widget is dropped. When a draggable is dragged on top of a drag target, the drag target is asked whether it will accept the data the draggable is carrying. If the user does drop the draggable on top of the drag target (and the drag target has indicated that it will accept the draggable's data), then the drag target is asked to accept the draggable's data.
Draggable https://api.flutter.dev/flutter/widgets/Draggable-class.html A widget that can be dragged from to a DragTarget. When a draggable widget recognizes the start of a drag gesture, it displays a feedback widget that tracks the user's finger across the screen. If the user lifts their finger while on top of a DragTarget, that target is given the opportunity to accept the data carried by the draggable.
DraggableScrollableSheet https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html A container for a Scrollable that responds to drag gestures by resizing the scrollable until a limit is reached, and then scrolling.
GestureDetector https://api.flutter.dev/flutter/widgets/GestureDetector-class.html A widget that detects gestures. Attempts to recognize gestures that correspond to its non-null callbacks. If this widget has a child, it defers to that child for its sizing behavior. If it does not have a child, it grows to fit the parent instead.
IgnorePointer https://api.flutter.dev/flutter/widgets/IgnorePointer-class.html A widget that is invisible during hit testing. When ignoring is true, this widget (and its subtree) is invisible to hit testing. It still consumes space during layout and paints its child as usual. It just cannot be the target of located events, because it returns false from RenderBox.hitTest.
InteractiveViewer https://api.flutter.dev/flutter/widgets/InteractiveViewer-class.html A widget that enables pan and zoom interactions with its child.
LongPressDraggable https://api.flutter.dev/flutter/widgets/LongPressDraggable-class.html Makes its child draggable starting from long press.
Scrollable https://api.flutter.dev/flutter/widgets/Scrollable-class.html Scrollable implements the interaction model for a scrollable widget, including gesture recognition, but does not have an opinion about how the viewport, which actually displays the children, is constructed.

Routing

组件名称名字 视频URL 组件英文描述
Hero https://api.flutter.dev/flutter/widgets/Hero-class.html A widget that marks its child as being a candidate for hero animations.
Navigator https://api.flutter.dev/flutter/widgets/Navigator-class.html A widget that manages a set of child widgets with a stack discipline. Many apps have a navigator near the top of their widget hierarchy to display their logical history using an Overlay with the most recently visited pages visually on top of the older pages. Using this pattern lets the navigator visually transition from one page to another by moving the widgets around in the overlay. Similarly, the navigator can be used to show a dialog by positioning the dialog widget above the current page.

Layout

组件名称名字 视频URL 组件英文描述

Single-child layout widgets

组件名称名字 视频URL 组件英文描述
Align https://api.flutter.dev/flutter/widgets/Align-class.html A widget that aligns its child within itself and optionally sizes itself based on the child's size.
AspectRatio https://api.flutter.dev/flutter/widgets/AspectRatio-class.html A widget that attempts to size the child to a specific aspect ratio.
Baseline https://api.flutter.dev/flutter/widgets/Baseline-class.html A widget that positions its child according to the child's baseline.
Center https://api.flutter.dev/flutter/widgets/Center-class.html A widget that centers its child within itself.
ConstrainedBox https://api.flutter.dev/flutter/widgets/ConstrainedBox-class.html A widget that imposes additional constraints on its child.
Container https://api.flutter.dev/flutter/widgets/Container-class.html A convenience widget that combines common painting, positioning, and sizing widgets.
CustomSingleChildLayout https://api.flutter.dev/flutter/widgets/CustomSingleChildLayout-class.html A widget that defers the layout of its single child to a delegate.
Expanded https://api.flutter.dev/flutter/widgets/Expanded-class.html A widget that expands a child of a Row, Column, or Flex.
FittedBox https://api.flutter.dev/flutter/widgets/FittedBox-class.html Scales and positions its child within itself according to fit.
FractionallySizedBox https://api.flutter.dev/flutter/widgets/FractionallySizedBox-class.html A widget that sizes its child to a fraction of the total available space. For more details about the layout algorithm, see RenderFractionallySizedOverflowBox.
IntrinsicHeight https://api.flutter.dev/flutter/widgets/IntrinsicHeight-class.html A widget that sizes its child to the child's intrinsic height.
IntrinsicWidth https://api.flutter.dev/flutter/widgets/IntrinsicWidth-class.html A widget that sizes its child to the child's intrinsic width.
LimitedBox https://api.flutter.dev/flutter/widgets/LimitedBox-class.html A box that limits its size only when it's unconstrained.
Offstage https://api.flutter.dev/flutter/widgets/Offstage-class.html A widget that lays the child out as if it was in the tree, but without painting anything, without making the child available for hit testing, and without taking any room in the parent.
OverflowBox https://api.flutter.dev/flutter/widgets/OverflowBox-class.html A widget that imposes different constraints on its child than it gets from its parent, possibly allowing the child to overflow the parent.
Padding https://api.flutter.dev/flutter/widgets/Padding-class.html A widget that insets its child by the given padding.
SizedBox https://api.flutter.dev/flutter/widgets/SizedBox-class.html A box with a specified size. If given a child, this widget forces its child to have a specific width and/or height (assuming values are permitted by this widget's parent). If either the width or height is null, this widget will size itself to match the child's size in that dimension.
SizedOverflowBox https://api.flutter.dev/flutter/widgets/SizedOverflowBox-class.html A widget that is a specific size but passes its original constraints through to its child, which will probably overflow.
Transform https://api.flutter.dev/flutter/widgets/Transform-class.html A widget that applies a transformation before painting its child.

Multi-child layout widgets

组件名称名字 视频URL 组件英文描述
Column https://api.flutter.dev/flutter/widgets/Column-class.html Layout a list of child widgets in the vertical direction.
CustomMultiChildLayout https://api.flutter.dev/flutter/widgets/CustomMultiChildLayout-class.html A widget that uses a delegate to size and position multiple children.
Flow https://api.flutter.dev/flutter/widgets/Flow-class.html A widget that implements the flow layout algorithm.
GridView https://api.flutter.dev/flutter/widgets/GridView-class.html A grid list consists of a repeated pattern of cells arrayed in a vertical and horizontal layout. The GridView widget implements this component.
IndexedStack https://api.flutter.dev/flutter/widgets/IndexedStack-class.html A Stack that shows a single child from a list of children.
LayoutBuilder https://api.flutter.dev/flutter/widgets/LayoutBuilder-class.html Builds a widget tree that can depend on the parent widget's size.
ListBody https://api.flutter.dev/flutter/widgets/ListBody-class.html A widget that arranges its children sequentially along a given axis, forcing them to the dimension of the parent in the other axis.
ListView https://api.flutter.dev/flutter/widgets/ListView-class.html A scrollable, linear list of widgets. ListView is the most commonly used scrolling widget. It displays its children one after another in the scroll direction. In the cross axis, the children are required to fill the ListView.
Row https://api.flutter.dev/flutter/widgets/Row-class.html Layout a list of child widgets in the horizontal direction.
Stack https://api.flutter.dev/flutter/widgets/Stack-class.html This class is useful if you want to overlap several children in a simple way, for example having some text and an image, overlaid with a gradient and a button attached to the bottom.
Table https://api.flutter.dev/flutter/widgets/Table-class.html A widget that uses the table layout algorithm for its children.
Wrap https://api.flutter.dev/flutter/widgets/Wrap-class.html A widget that displays its children in multiple horizontal or vertical runs.

Sliver widgets

组件名称名字 视频URL 组件英文描述
CupertinoSliverNavigationBar https://api.flutter.dev/flutter/cupertino/CupertinoSliverNavigationBar-class.html An iOS-styled navigation bar with iOS-11-style large titles using slivers.
CustomScrollView https://api.flutter.dev/flutter/widgets/CustomScrollView-class.html A ScrollView that creates custom scroll effects using slivers.
SliverAppBar https://api.flutter.dev/flutter/material/SliverAppBar-class.html A material design app bar that integrates with a CustomScrollView.
SliverChildBuilderDelegate https://api.flutter.dev/flutter/widgets/SliverChildBuilderDelegate-class.html A delegate that supplies children for slivers using a builder callback.
SliverChildListDelegate https://api.flutter.dev/flutter/widgets/SliverChildListDelegate-class.html A delegate that supplies children for slivers using an explicit list.
SliverFixedExtentList https://api.flutter.dev/flutter/widgets/SliverFixedExtentList-class.html A sliver that places multiple box children with the same main axis extent in a linear array.
SliverGrid https://api.flutter.dev/flutter/widgets/SliverGrid-class.html A sliver that places multiple box children in a two dimensional arrangement.
SliverList https://api.flutter.dev/flutter/widgets/SliverList-class.html A sliver that places multiple box children in a linear array along the main axis.
SliverPadding https://api.flutter.dev/flutter/widgets/SliverPadding-class.html A sliver that applies padding on each side of another sliver.
SliverPersistentHeader https://api.flutter.dev/flutter/widgets/SliverPersistentHeader-class.html A sliver whose size varies when the sliver is scrolled to the edge of the viewport opposite the sliver's GrowthDirection.
SliverToBoxAdapter https://api.flutter.dev/flutter/widgets/SliverToBoxAdapter-class.html A sliver that contains a single box widget.

Material Components

组件名称名字 视频URL 组件英文描述

App structure and navigation

组件名称名字 视频URL 组件英文描述
Appbar https://api.flutter.dev/flutter/material/AppBar-class.html A Material Design app bar. An app bar consists of a toolbar and potentially other widgets, such as a TabBar and a FlexibleSpaceBar.
BottomNavigationBar https://api.flutter.dev/flutter/material/BottomNavigationBar-class.html Bottom navigation bars make it easy to explore and switch between top-level views in a single tap. The BottomNavigationBar widget implements this component.
Drawer https://api.flutter.dev/flutter/material/Drawer-class.html A Material Design panel that slides in horizontally from the edge of a Scaffold to show navigation links in an application.
MaterialApp https://api.flutter.dev/flutter/material/MaterialApp-class.html A convenience widget that wraps a number of widgets that are commonly required for applications implementing Material Design.
Scaffold https://api.flutter.dev/flutter/material/Scaffold-class.html Implements the basic Material Design visual layout structure. This class provides APIs for showing drawers, snack bars, and bottom sheets.
SliverAppBar https://api.flutter.dev/flutter/material/SliverAppBar-class.html A material design app bar that integrates with a CustomScrollView.
TabBar https://api.flutter.dev/flutter/material/TabBar-class.html A Material Design widget that displays a horizontal row of tabs.
TabBarView https://api.flutter.dev/flutter/material/TabBarView-class.html A page view that displays the widget which corresponds to the currently selected tab. Typically used in conjunction with a TabBar.
TabController https://api.flutter.dev/flutter/material/TabController-class.html Coordinates tab selection between a TabBar and a TabBarView.
TabPageSelector https://api.flutter.dev/flutter/material/TabPageSelector-class.html Displays a row of small circular indicators, one per tab. The selected tab's indicator is highlighted. Often used in conjunction with a TabBarView.
WidgetsApp https://api.flutter.dev/flutter/widgets/WidgetsApp-class.html A convenience class that wraps a number of widgets that are commonly required for an application.

Buttons

组件名称名字 视频URL 组件英文描述
DropdownButton https://api.flutter.dev/flutter/material/DropdownButton-class.html Shows the currently selected item and an arrow that opens a menu for selecting another item.
ElevatedButton https://api.flutter.dev/flutter/material/ElevatedButton-class.html A Material Design elevated button. A filled button whose material elevates when pressed.
FloatingActionButton https://api.flutter.dev/flutter/material/FloatingActionButton-class.html A floating action button is a circular icon button that hovers over content to promote a primary action in the application. Floating action buttons are most commonly used in the Scaffold.floatingActionButton field.
IconButton https://api.flutter.dev/flutter/material/IconButton-class.html An icon button is a picture printed on a Material widget that reacts to touches by filling with color (ink).
OutlinedButton https://api.flutter.dev/flutter/material/OutlinedButton-class.html A Material Design outlined button, essentially a TextButton with an outlined border.
PopupMenuButton https://api.flutter.dev/flutter/material/PopupMenuButton-class.html Displays a menu when pressed and calls onSelected when the menu is dismissed because an item was selected.
TextButton https://api.flutter.dev/flutter/material/TextButton-class.html A Material Design text button. A simple flat button without a border outline.

Input and selections

组件名称名字 视频URL 组件英文描述
Checkbox https://api.flutter.dev/flutter/material/Checkbox-class.html Checkboxes allow the user to select multiple options from a set. The Checkbox widget implements this component.
Date & Time Pickers https://api.flutter.dev/flutter/material/showDatePicker.html Date pickers use a dialog window to select a single date on mobile. Time pickers use a dialog to select a single time (in the hours:minutes format) on mobile.
Radio https://api.flutter.dev/flutter/material/Radio-class.html Radio buttons allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.
Slider https://api.flutter.dev/flutter/material/Slider-class.html Sliders let users select from a range of values by moving the slider thumb.
Switch https://api.flutter.dev/flutter/material/Switch-class.html On/off switches toggle the state of a single settings option. The Switch widget implements this component.
TextField https://api.flutter.dev/flutter/material/TextField-class.html Touching a text field places the cursor and displays the keyboard. The TextField widget implements this component.

Dialogs, alerts, and panels

组件名称名字 视频URL 组件英文描述
AlertDialog https://api.flutter.dev/flutter/material/AlertDialog-class.html Alerts are urgent interruptions requiring acknowledgement that inform the user about a situation. The AlertDialog widget implements this component.
BottomSheet https://api.flutter.dev/flutter/material/BottomSheet-class.html Bottom sheets slide up from the bottom of the screen to reveal more content. You can call showBottomSheet() to implement a persistent bottom sheet or showModalBottomSheet() to implement a modal bottom sheet.
ExpansionPanel https://api.flutter.dev/flutter/material/ExpansionPanel-class.html Expansion panels contain creation flows and allow lightweight editing of an element. The ExpansionPanel widget implements this component.
SimpleDialog https://api.flutter.dev/flutter/material/SimpleDialog-class.html Simple dialogs can provide additional details or actions about a list item. For example they can display avatars icons clarifying subtext or orthogonal actions (such as adding an account).
SnackBar https://api.flutter.dev/flutter/material/SnackBar-class.html A lightweight message with an optional action which briefly displays at the bottom of the screen.

Information displays

组件名称名字 视频URL 组件英文描述
Card https://api.flutter.dev/flutter/material/Card-class.html A Material Design card. A card has slightly rounded corners and a shadow.
Chip https://api.flutter.dev/flutter/material/Chip-class.html A Material Design chip. Chips represent complex entities in small blocks, such as a contact.
CircularProgressIndicator https://api.flutter.dev/flutter/material/CircularProgressIndicator-class.html A material design circular progress indicator, which spins to indicate that the application is busy.
DataTable https://api.flutter.dev/flutter/material/DataTable-class.html Data tables display sets of raw data. They usually appear in desktop enterprise products. The DataTable widget implements this component.
GridView https://api.flutter.dev/flutter/widgets/GridView-class.html A grid list consists of a repeated pattern of cells arrayed in a vertical and horizontal layout. The GridView widget implements this component.
Icon https://api.flutter.dev/flutter/widgets/Icon-class.html A Material Design icon.
Image https://api.flutter.dev/flutter/widgets/Image-class.html A widget that displays an image.
LinearProgressIndicator https://api.flutter.dev/flutter/material/LinearProgressIndicator-class.html A material design linear progress indicator, also known as a progress bar.
Tooltip https://api.flutter.dev/flutter/material/Tooltip-class.html Tooltips provide text labels that help explain the function of a button or other user interface action. Wrap the button in a Tooltip widget to show a label when the widget long pressed (or when the user takes some other appropriate action).

Layout

组件名称名字 视频URL 组件英文描述
Divider https://api.flutter.dev/flutter/material/Divider-class.html A one logical pixel thick horizontal line, with padding on either side.
ListTile https://api.flutter.dev/flutter/material/ListTile-class.html A single fixed-height row that typically contains some text as well as a leading or trailing icon.
Stepper https://api.flutter.dev/flutter/material/Stepper-class.html A Material Design stepper widget that displays progress through a sequence of steps.

Painting and effects

组件名称名字 视频URL 组件英文描述
BackdropFilter https://api.flutter.dev/flutter/widgets/BackdropFilter-class.html A widget that applies a filter to the existing painted content and then paints a child. This effect is relatively expensive, especially if the filter is non-local, such as a blur.
ClipOval https://api.flutter.dev/flutter/widgets/ClipOval-class.html A widget that clips its child using an oval.
ClipPath https://api.flutter.dev/flutter/widgets/ClipPath-class.html A widget that clips its child using a path.
ClipRect https://api.flutter.dev/flutter/widgets/ClipRect-class.html A widget that clips its child using a rectangle.
CustomPaint https://api.flutter.dev/flutter/widgets/CustomPaint-class.html A widget that provides a canvas on which to draw during the paint phase.
DecoratedBox https://api.flutter.dev/flutter/widgets/DecoratedBox-class.html A widget that paints a Decoration either before or after its child paints.
FractionalTranslation https://api.flutter.dev/flutter/widgets/FractionalTranslation-class.html A widget that applies a translation expressed as a fraction of the box's size before painting its child.
Opacity https://api.flutter.dev/flutter/widgets/Opacity-class.html A widget that makes its child partially transparent.
RotatedBox https://api.flutter.dev/flutter/widgets/RotatedBox-class.html A widget that rotates its child by a integral number of quarter turns.
Transform https://api.flutter.dev/flutter/widgets/Transform-class.html A widget that applies a transformation before painting its child.

Scrolling

组件名称名字 视频URL 组件英文描述
CustomScrollView https://api.flutter.dev/flutter/widgets/CustomScrollView-class.html A ScrollView that creates custom scroll effects using slivers.
DraggableScrollableSheet https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html A container for a Scrollable that responds to drag gestures by resizing the scrollable until a limit is reached, and then scrolling.
GridView https://api.flutter.dev/flutter/widgets/GridView-class.html A grid list consists of a repeated pattern of cells arrayed in a vertical and horizontal layout. The GridView widget implements this component.
ListView https://api.flutter.dev/flutter/widgets/ListView-class.html A scrollable, linear list of widgets. ListView is the most commonly used scrolling widget. It displays its children one after another in the scroll direction. In the cross axis, the children are required to fill the ListView.
NestedScrollView https://api.flutter.dev/flutter/widgets/NestedScrollView-class.html A scrolling view inside of which can be nested other scrolling views, with their scroll positions being intrinsically linked.
NotificationListener https://api.flutter.dev/flutter/widgets/NotificationListener-class.html A widget that listens for Notifications bubbling up the tree.
PageView https://api.flutter.dev/flutter/widgets/PageView-class.html A scrollable list that works page by page.
RefreshIndicator https://api.flutter.dev/flutter/material/RefreshIndicator-class.html A Material Design pull-to-refresh wrapper for scrollables.
ReorderableListView https://api.flutter.dev/flutter/material/ReorderableListView-class.html A list whose items the user can interactively reorder by dragging.
ScrollConfiguration https://api.flutter.dev/flutter/widgets/ScrollConfiguration-class.html Controls how Scrollable widgets behave in a subtree.
Scrollable https://api.flutter.dev/flutter/widgets/Scrollable-class.html Scrollable implements the interaction model for a scrollable widget, including gesture recognition, but does not have an opinion about how the viewport, which actually displays the children, is constructed.
Scrollbar https://api.flutter.dev/flutter/material/Scrollbar-class.html A Material Design scrollbar. A scrollbar indicates which portion of a Scrollable widget is actually visible.
SingleChildScrollView https://api.flutter.dev/flutter/widgets/SingleChildScrollView-class.html A box in which a single widget can be scrolled. This widget is useful when you have a single box that will normally be entirely visible, for example a clock face in a time picker, but you need to make sure it can be scrolled if the container gets too small in one axis (the scroll direction).

Styling

组件名称名字 视频URL 组件英文描述
MediaQuery https://api.flutter.dev/flutter/widgets/MediaQuery-class.html Establishes a subtree in which media queries resolve to the given data.
Padding https://api.flutter.dev/flutter/widgets/Padding-class.html A widget that insets its child by the given padding.
Theme https://api.flutter.dev/flutter/material/Theme-class.html Applies a theme to descendant widgets. A theme describes the colors and typographic choices of an application.

Text

组件名称名字 视频URL 组件英文描述
DefaultTextStyle https://api.flutter.dev/flutter/widgets/DefaultTextStyle-class.html The text style to apply to descendant Text widgets without explicit style.
RichText https://api.flutter.dev/flutter/widgets/RichText-class.html The RichText widget displays text that uses multiple different styles. The text to display is described using a tree of TextSpan objects, each of which has an associated style that is used for that subtree. The text might break across multiple lines or might all be displayed on the same line depending on the layout constraints.
Text https://api.flutter.dev/flutter/widgets/Text-class.html A run of text with a single style.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容