1.本书由Flutter中文网社区创始人、网红畅销书《Flutter实战》作者撰写,根据Flutter3.0版本技术迭代对第1版内容进行大量更新和重构,增加一些实例解析核心技术原理,并在进阶篇对Flutter技术中相对较深但很重要的内容进行了深入介绍。另外,书中还添加了一些动态图二维码,方便读者在阅读时扫描二维码体验动态图效果。
2.本书适合PC客户端、移动开发或Web前端开发者和想学习Flutter技术更新进阶实战的Flutter初学者阅读参考。
3.读者可以免费下载随书源代码:https://github.com/wendux/flutter_in_action_2。另外,由于本书实例中实现了不少通用性较强的组件,为了方便读者复用,作者将通用性较强的组件都添加到了 Flukit 开源项目,它是作者维护的一个Flutter开源组件库,项目地址是:https://github.com/flutterchina/flukit。
第一篇 入门篇
第1章 起步 2
1.1 移动开发技术简介 2
1.2 初识Flutter 9
1.3 搭建Flutter开发环境 13
1.4 Dart语言简介 25
第2章 第一个Flutter应用 36
2.1 计数器应用示例 36
2.2 Widget简介 42
2.3 状态管理 57
2.4 路由管理 63
2.5 包管理 71
2.6 资源管理 74
2.7 调试Flutter应用 80
2.8 Flutter异常捕获 87
第3章 基础组件 92
3.1 文本及样式 92
3.2 按钮 97
3.3 图片及ICON 98
3.4 单选开关和复选框 105
3.5 输入框及表单 106
3.6 进度指示器 117
第4章 布局类组件 122
4.1 布局类组件简介 122
4.2 布局原理与约束 123
4.3 线性布局 129
4.4 弹性布局 133
4.5 流式布局 136
4.6 层叠布局 139
4.7 对齐与相对定位 142
4.8 LayoutBuilder、AfterLayout 146
第5章 容器类组件 153
5.1 填充 153
5.2 装饰容器 154
5.3 变换 156
5.4 容器组件 159
5.5 剪裁 161
5.6 空间适配 163
5.7 页面骨架 169
第二篇 进阶篇
第6章 可滚动组件 176
6.1 可滚动组件简介 176
6.2 SingleChildScrollView 181
6.3 ListView 182
6.4 滚动监听及控制 191
6.5 AnimatedList 197
6.6 GridView 199
6.7 PageView与页面缓存 204
6.8 可滚动组件子项缓存 206
6.9 TabBarView 210
6.10 CustomScrollView 和 Sliver 214
6.11 自定义 Sliver 223
6.12 嵌套可滚动组件
NestedScrollView 237
第7章 功能型组件 246
7.1 导航返回拦截 246
7.2 数据共享 247
7.3 跨组件状态共享 252
7.4 颜色和主题 261
7.5 按需重构 266
7.6 异步UI更新 268
7.7 对话框详解 272
第8章 事件处理与通知 290
8.1 原始指针事件处理 290
8.2 手势识别 292
8.3 Flutter事件机制 297
8.4 手势原理与手势冲突 310
8.5 事件总线 318
8.6 通知 319
第9章 动画 326
9.1 Flutter动画简介 326
9.2 动画基本结构及状态监听 330
9.3 自定义路由切换动画 335
9.4 Hero动画 338
9.5 交织动画 343
9.6 动画切换组件 346
9.7 动画过渡组件 353
第10章 自定义组件 362
10.1 自定义组件方法简介 362
10.2 组合现有组件 363
10.3 组合实例:TurnBox 366
10.4 CustomPaint与Canvas 370
10.5 自绘实例:圆形背景渐变
进度条 375
10.6 自绘组件:CustomCheckbox 382
10.7 自绘组件: DoneWidget 393
10.8 水印组件实例:文本绘制与
离屏渲染 396
第11章 文件操作与网络请求 413
11.1 文件操作 413
11.2 通过HttpClient发起HTTP
请求 415
11.3 HTTP请求库dio 422
11.4 实例:HTTP分块下载 424
11.5 使用WebSocket 429
11.6 使用Socket API 432
11.7 JSON转Dart Model类 433
第12章 Flutter 扩展 444
12.1 包和插件 444
12.2 Flutter Web 446
第13章 国际化 449
13.1 让App支持多语言 449
13.2 实现Localizations 453
13.3 使用Intl包 455
13.4 国际化常见问题 459
第14章 Flutter核心原理 461
14.1 Flutter UI框架 461
14.2 Element、BuildContext和RenderObject 463
14.3 Flutter启动流程和渲染管线 468
14.4 布局过程 477
14.5 绘制一:绘制原理及Layer 492
14.6 绘制二:组件树绘制流程 496
14.7 绘制三:Layer 实例 505
14.8 绘制四:Compositing 510
第三篇 实例篇
第15章 一个完整的Flutter应用 524
15.1 GitHub客户端示例 524
15.2 Flutter App代码结构 525
15.3 Model类定义 526
15.4 全局变量及共享状态 529
15.5 网络请求封装 532
15.6 App入口及主页 536
15.7 登录页 547
15.8 多语言和多主题 549