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 进行调试
新闻
构建新闻应用
获利
概述
添加应用内购买
地图
向您的应用添加地图
用户界面
简介
小部件目录
布局
简介
构建布局
列表和网格
创建和使用列表
创建水平列表
创建网格视图
创建包含不同类型项目的列表
创建包含间隔项目的列表
处理长列表
滚动
概述
使用 slivers 实现花式滚动
将浮动应用栏置于列表上方
创建滚动视差效果
自适应设计
自适应且响应式应用设计
构建自适应应用
根据方向更新应用 UI
设计和主题
使用主题共享样式
Material Design
迁移到 Material 3
文本
字体和排版
使用自定义字体
从软件包中导出字体
Google Fonts 软件包
自定义图形
使用自定义片段着色器
交互性
为您的应用添加交互性
手势
简介
处理点击
将对象拖出应用
在应用内拖动 UI 元素
添加 Material 触摸波纹
实现滑动以关闭
输入和表单
创建和设置文本字段的样式
检索文本字段的值
处理文本字段的更改
管理文本字段中的焦点
构建具有验证功能的表单
显示小吃栏
实现操作和快捷方式
管理键盘焦点
资源和媒体
添加资源和图像
显示来自互联网的图像
使用占位符淡入图像
播放和暂停视频
导航和路由
概述
为您的应用添加标签页
导航到新屏幕并返回
将数据发送到新屏幕
从屏幕返回数据
为屏幕添加抽屉
设置深度链接
为 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 互操作
网络
将网络添加为构建目标
构建网络应用程序
网络常见问题解答
网络渲染器
自定义应用程序初始化
在网络上显示图像
Windows
将 Windows 添加为构建目标
构建 Windows 应用程序
软件包和插件
使用软件包和插件
开发软件包和插件
Flutter 收藏夹
软件包存储库
测试和调试
测试
测试概述
单元测试
简介
模拟依赖项
小部件测试
简介
查找小部件
模拟滚动
模拟用户交互
集成测试
简介
编写并运行集成测试
分析集成测试
测试插件
在测试中处理插件代码
调试
调试工具
以编程方式调试应用程序
使用本机语言调试器
Flutter 的构建模式
常见的 Flutter 错误
处理错误
向服务报告错误
性能和优化
概述
Impeller
性能最佳实践
应用程序大小
延迟组件
渲染性能
性能分析
网络性能分析
着色器编译卡顿
性能指标
并发和隔离
性能常见问题解答
附录
部署
混淆 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
食谱
代码实验室
开始
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 进行调试
新闻
构建新闻应用
获利
概述
添加应用内购买
地图
向您的应用添加地图
用户界面
简介
小部件目录
布局
简介
构建布局
列表和网格
创建和使用列表
创建水平列表
创建网格视图
创建包含不同类型项目的列表
创建包含间隔项目的列表
处理长列表
滚动
概述
使用 slivers 实现花式滚动
将浮动应用栏置于列表上方
创建滚动视差效果
自适应设计
自适应且响应式应用设计
构建自适应应用
根据方向更新应用 UI
设计和主题
使用主题共享样式
Material Design
迁移到 Material 3
文本
字体和排版
使用自定义字体
从软件包中导出字体
Google Fonts 软件包
自定义图形
使用自定义片段着色器
交互性
为您的应用添加交互性
手势
简介
处理点击
将对象拖出应用
在应用内拖动 UI 元素
添加 Material 触摸波纹
实现滑动以关闭
输入和表单
创建和设置文本字段的样式
检索文本字段的值
处理文本字段的更改
管理文本字段中的焦点
构建具有验证功能的表单
显示小吃栏
实现操作和快捷方式
管理键盘焦点
资源和媒体
添加资源和图像
显示来自互联网的图像
使用占位符淡入图像
播放和暂停视频
导航和路由
概述
为您的应用添加标签页
导航到新屏幕并返回
将数据发送到新屏幕
从屏幕返回数据
为屏幕添加抽屉
设置深度链接
为 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 互操作
网络
将网络添加为构建目标
构建网络应用程序
网络常见问题解答
网络渲染器
自定义应用程序初始化
在网络上显示图像
Windows
将 Windows 添加为构建目标
构建 Windows 应用程序
软件包和插件
使用软件包和插件
开发软件包和插件
Flutter 收藏夹
软件包存储库
测试和调试
测试
测试概述
单元测试
简介
模拟依赖项
小部件测试
简介
查找小部件
模拟滚动
模拟用户交互
集成测试
简介
编写并运行集成测试
分析集成测试
测试插件
在测试中处理插件代码
调试
调试工具
以编程方式调试应用程序
使用本机语言调试器
Flutter 的构建模式
常见的 Flutter 错误
处理错误
向服务报告错误
性能和优化
概述
Impeller
性能最佳实践
应用程序大小
延迟组件
渲染性能
性能分析
网络性能分析
着色器编译卡顿
性能指标
并发和隔离
性能常见问题解答
附录
部署
混淆 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
输入和表单
UI
交互性
输入和表单
主题
创建和设置文本字段的样式
检索文本字段的值
处理文本字段的更改
管理文本字段中的焦点
构建具有验证功能的表单