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 策略
动画和过渡
简介
教程
隐式动画
为容器的属性设置动画
淡入和淡出小组件
英雄动画
为页面路由过渡设置动画
使用物理模拟设置动画
交错动画
创建交错菜单动画
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 Fragment
添加 Flutter View
使用 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 参考
多平台
移动
Web
桌面
嵌入式
开发
学习
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 策略
动画和过渡
简介
教程
隐式动画
为容器的属性设置动画
淡入和淡出小组件
英雄动画
为页面路由过渡设置动画
使用物理模拟设置动画
交错动画
创建交错菜单动画
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 Fragment
添加 Flutter View
使用 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
Linux
平台集成
Linux
主题
将 Linux 添加为构建目标
构建 Linux 应用程序