Google 使用 Cookie 来提供服务、个性化广告和分析流量。您可以在
Google 设置
中随时调整您的隐私控件。
了解更多信息
。
确定
菜单
开始使用
安装 Flutter
试用
编写您的第一个应用
了解更多信息
来自其他平台?
面向 Android 开发者的 Flutter
面向 SwiftUI 开发者的 Flutter
面向 UIKit 开发者的 Flutter
面向 React Native 开发者的 Flutter
面向 Web 开发者的 Flutter
面向 Xamarin.Forms 开发者的 Flutter
声明式 UI 简介
Flutter 与 Swift 并发
Dart 语言概览
保持最新状态
升级
SDK 存档
新增功能
发行说明
重大更改
兼容性政策
Codelab 和示例
Codelab
食谱
示例和演示
应用解决方案
游戏
概览
添加成就和排行榜
添加广告
添加多人游戏支持
添加应用内购买
添加用户身份验证
使用 Crashlytics 进行调试
新闻
构建新闻应用
获利
概览
添加应用内购买
地图
向应用添加地图
用户界面
简介
小部件目录
布局
简介
构建布局
列表和网格
创建和使用列表
创建水平列表
创建网格视图
创建包含不同类型项目的列表
创建包含间隔项目的列表
使用长列表
滚动
概览
使用 Sliver 实现炫酷的滚动
将浮动应用栏置于列表上方
创建滚动视差效果
自适应设计
自适应和响应式应用设计
构建自适应应用
根据方向更新应用 UI
设计和主题
使用主题共享样式
Material Design
迁移到 Material 3
文本
字体和排版
使用自定义字体
从包中导出字体
Google Fonts 包
自定义图形
使用自定义片段着色器
交互性
向应用添加交互性
手势
简介
处理点击
将对象拖出应用
在应用内拖动 UI 元素
添加 Material 触摸涟漪
实现滑动以关闭
输入和表单
创建和设置文本字段样式
检索文本字段的值
处理文本字段的更改
管理文本字段中的焦点
构建带验证的表单
显示 SnackBar
实现操作和快捷方式
管理键盘焦点
资源和媒体
添加资源和图像
显示来自互联网的图像
使用占位符淡入图像
播放和暂停视频
导航和路由
概览
向应用添加标签页
导航到新屏幕并返回
向新屏幕发送数据
从屏幕返回数据
向屏幕添加抽屉
设置深度链接
为 Android 设置应用链接
为 iOS 设置通用链接
配置 Web URL 策略
动画和过渡
简介
教程
隐式动画
对容器的属性进行动画处理
淡入和淡出小组件
Hero 动画
对页面路由过渡进行动画处理
使用物理模拟进行动画处理
交错动画
创建交错菜单动画
API 概览
辅助功能和国际化
辅助功能
国际化
超越 UI
数据和后端
状态管理
简介
声明式思考
临时状态与应用状态
简单的应用状态管理
选项
网络和 http
概览
从互联网获取数据
进行经过身份验证的请求
向互联网发送数据
通过互联网更新数据
在互联网上删除数据
使用 WebSocket 进行通信
序列化
JSON 序列化
在后台解析 JSON
持久性
将键值数据存储在磁盘上
读取和写入文件
使用 SQLite 持久化数据
Firebase
Google API
平台集成
支持的平台
使用 Flutter 构建桌面应用
编写特定于平台的代码
自动平台适配
Android
将 Android 添加为构建目标
添加启动画面
绑定到原生代码
托管原生 Android 视图
在 Android 上恢复状态
使用 Android 定位 ChromeOS
iOS
添加 iOS 作为构建目标
利用 Apple 的系统库
添加启动屏幕
添加 iOS App Clip 支持
添加 iOS 应用扩展
绑定到原生代码
托管原生 iOS 视图
在 iOS 上启用调试
在 iOS 上恢复状态
Linux
添加 Linux 作为构建目标
构建 Linux 应用
macOS
添加 macOS 作为构建目标
构建 macOS 应用
C 互操作
Web
添加 Web 作为构建目标
构建 Web 应用
Web 常见问题解答
Web 渲染器
自定义应用初始化
在 Web 上显示图像
Windows
添加 Windows 作为构建目标
构建 Windows 应用
软件包和插件
使用软件包和插件
开发软件包和插件
Flutter 收藏夹
软件包存储库
测试和调试
测试
测试概述
单元测试
简介
模拟依赖项
小部件测试
简介
查找小部件
模拟滚动
模拟用户交互
集成测试
简介
编写并运行集成测试
分析集成测试
测试插件
在测试中处理插件代码
调试
调试工具
以编程方式调试应用
使用原生语言调试器
Flutter 的构建模式
常见的 Flutter 错误
处理错误
向服务报告错误
性能和优化
概览
Impeller
性能最佳实践
应用大小
延迟组件
渲染性能
性能分析
Web 的性能分析
着色器编译抖动
性能指标
并发和隔离
性能常见问题解答
附录
部署
混淆 Dart 代码
创建应用的不同版本
构建并发布 Android 应用
构建并发布 iOS 应用
构建并发布 macOS 应用
构建并发布 Linux 应用
构建并发布 Windows 应用
构建并发布 Web 应用
设置持续部署
添加到现有应用
简介
添加到 Android 应用
设置 Android 项目
添加单个 Flutter 屏幕
添加 Flutter 片段
添加 Flutter 视图
使用 Flutter 插件
添加到 iOS 应用程序
设置 iOS 项目
添加单个 Flutter 屏幕
调试嵌入式 Flutter 模块
添加多个 Flutter 实例
加载顺序和性能
工具和编辑器
Android Studio 和 IntelliJ
Visual Studio Code
DevTools
概览
从 Android Studio 和 IntelliJ 安装
从 VS Code 安装
从命令行安装
Flutter 检查器
性能视图
CPU 分析器视图
内存视图
调试控制台视图
网络视图
调试器
日志记录视图
应用程序大小工具
DevTools 扩展
发行说明
SDK 概述
Flutter 的 pubspec 选项
自动修复
代码格式化
Flutter 概念
架构概述
Flutter 内部
了解约束
Flutter 的构建模式
热重载
资源
学习
常见问题解答
书籍
视频
课程
学习 Dart
贡献
创建有用的错误报告
为 Flutter 做出贡献
设计文档
参考
Dash 是谁?
小部件索引
API 参考
flutter CLI 参考
多平台
移动
网络
桌面
嵌入式
开发
学习
Flutter 精选
软件包
获利
游戏
新闻
生态系统
社区
活动
文化
展示
文档
新功能
编辑器支持
热重载
分析
安装 Flutter
DevTools
食谱
Codelabs
开始使用
Flutter 和 Dart 的最新版本正在帮助定义应用开发的未来。
阅读博客
以了解更多信息。
开始使用
安装 Flutter
试用
编写您的第一个应用
了解更多信息
来自其他平台?
面向 Android 开发者的 Flutter
面向 SwiftUI 开发者的 Flutter
面向 UIKit 开发者的 Flutter
面向 React Native 开发者的 Flutter
面向 Web 开发者的 Flutter
面向 Xamarin.Forms 开发者的 Flutter
声明式 UI 简介
Flutter 与 Swift 并发
Dart 语言概览
保持最新状态
升级
SDK 存档
新增功能
发行说明
重大更改
兼容性政策
Codelab 和示例
Codelab
食谱
示例和演示
应用解决方案
游戏
概览
添加成就和排行榜
添加广告
添加多人游戏支持
添加应用内购买
添加用户身份验证
使用 Crashlytics 进行调试
新闻
构建新闻应用
获利
概览
添加应用内购买
地图
向应用添加地图
用户界面
简介
小部件目录
布局
简介
构建布局
列表和网格
创建和使用列表
创建水平列表
创建网格视图
创建包含不同类型项目的列表
创建包含间隔项目的列表
使用长列表
滚动
概览
使用 Sliver 实现炫酷的滚动
将浮动应用栏置于列表上方
创建滚动视差效果
自适应设计
自适应和响应式应用设计
构建自适应应用
根据方向更新应用 UI
设计和主题
使用主题共享样式
Material Design
迁移到 Material 3
文本
字体和排版
使用自定义字体
从包中导出字体
Google Fonts 包
自定义图形
使用自定义片段着色器
交互性
向应用添加交互性
手势
简介
处理点击
将对象拖出应用
在应用内拖动 UI 元素
添加 Material 触摸涟漪
实现滑动以关闭
输入和表单
创建和设置文本字段样式
检索文本字段的值
处理文本字段的更改
管理文本字段中的焦点
构建带验证的表单
显示 SnackBar
实现操作和快捷方式
管理键盘焦点
资源和媒体
添加资源和图像
显示来自互联网的图像
使用占位符淡入图像
播放和暂停视频
导航和路由
概览
向应用添加标签页
导航到新屏幕并返回
向新屏幕发送数据
从屏幕返回数据
向屏幕添加抽屉
设置深度链接
为 Android 设置应用链接
为 iOS 设置通用链接
配置 Web URL 策略
动画和过渡
简介
教程
隐式动画
对容器的属性进行动画处理
淡入和淡出小组件
Hero 动画
对页面路由过渡进行动画处理
使用物理模拟进行动画处理
交错动画
创建交错菜单动画
API 概览
辅助功能和国际化
辅助功能
国际化
超越 UI
数据和后端
状态管理
简介
声明式思考
临时状态与应用状态
简单的应用状态管理
选项
网络和 http
概览
从互联网获取数据
进行经过身份验证的请求
向互联网发送数据
通过互联网更新数据
在互联网上删除数据
使用 WebSocket 进行通信
序列化
JSON 序列化
在后台解析 JSON
持久性
将键值数据存储在磁盘上
读取和写入文件
使用 SQLite 持久化数据
Firebase
Google API
平台集成
支持的平台
使用 Flutter 构建桌面应用
编写特定于平台的代码
自动平台适配
Android
将 Android 添加为构建目标
添加启动画面
绑定到原生代码
托管原生 Android 视图
在 Android 上恢复状态
使用 Android 定位 ChromeOS
iOS
添加 iOS 作为构建目标
利用 Apple 的系统库
添加启动屏幕
添加 iOS App Clip 支持
添加 iOS 应用扩展
绑定到原生代码
托管原生 iOS 视图
在 iOS 上启用调试
在 iOS 上恢复状态
Linux
添加 Linux 作为构建目标
构建 Linux 应用
macOS
添加 macOS 作为构建目标
构建 macOS 应用
C 互操作
Web
添加 Web 作为构建目标
构建 Web 应用
Web 常见问题解答
Web 渲染器
自定义应用初始化
在 Web 上显示图像
Windows
添加 Windows 作为构建目标
构建 Windows 应用
软件包和插件
使用软件包和插件
开发软件包和插件
Flutter 收藏夹
软件包存储库
测试和调试
测试
测试概述
单元测试
简介
模拟依赖项
小部件测试
简介
查找小部件
模拟滚动
模拟用户交互
集成测试
简介
编写并运行集成测试
分析集成测试
测试插件
在测试中处理插件代码
调试
调试工具
以编程方式调试应用
使用原生语言调试器
Flutter 的构建模式
常见的 Flutter 错误
处理错误
向服务报告错误
性能和优化
概览
Impeller
性能最佳实践
应用大小
延迟组件
渲染性能
性能分析
Web 的性能分析
着色器编译抖动
性能指标
并发和隔离
性能常见问题解答
附录
部署
混淆 Dart 代码
创建应用的不同版本
构建并发布 Android 应用
构建并发布 iOS 应用
构建并发布 macOS 应用
构建并发布 Linux 应用
构建并发布 Windows 应用
构建并发布 Web 应用
设置持续部署
添加到现有应用
简介
添加到 Android 应用
设置 Android 项目
添加单个 Flutter 屏幕
添加 Flutter 片段
添加 Flutter 视图
使用 Flutter 插件
添加到 iOS 应用程序
设置 iOS 项目
添加单个 Flutter 屏幕
调试嵌入式 Flutter 模块
添加多个 Flutter 实例
加载顺序和性能
工具和编辑器
Android Studio 和 IntelliJ
Visual Studio Code
DevTools
概览
从 Android Studio 和 IntelliJ 安装
从 VS Code 安装
从命令行安装
Flutter 检查器
性能视图
CPU 分析器视图
内存视图
调试控制台视图
网络视图
调试器
日志记录视图
应用程序大小工具
DevTools 扩展
发行说明
SDK 概述
Flutter 的 pubspec 选项
自动修复
代码格式化
Flutter 概念
架构概述
Flutter 内部
了解约束
Flutter 的构建模式
热重载
资源
学习
常见问题解答
书籍
视频
课程
学习 Dart
贡献
创建有用的错误报告
为 Flutter 做出贡献
设计文档
参考
Dash 是谁?
小部件索引
API 参考
flutter CLI 参考
description
bug_report
状态管理
数据和后端
状态管理
主题
简介
声明式思考
临时状态与应用状态
简单的应用状态管理
选项