前 言
         【第一篇 入门篇】
         ●第1章 起步  2
         1.1 移动开发技术简介  2
         1.1.1 原生开发与跨平台技术  2
         1.1.2 Hybrid技术简介  3
         1.1.3 React Native、Weex及快应用  5
         1.1.4 QT Mobile  7
         1.1.5 Flutter问世  8
         1.1.6 总结  9
         1.2 初识Flutter  10
         1.2.1 Flutter简介  10
         1.2.2 Flutter框架结构  12
         1.2.3 如何学习Flutter  13
         1.3 搭建Flutter开发环境  14
         1.3.1 安装Flutter  14
         1.3.2 IDE配置与使用  19
         1.3.3 连接设备运行Flutter应用  21
         1.3.4 Android Studio常见配置问题  24
         1.4 Dart语言简介  26
         1.4.1 变量声明  27
         1.4.2 函数  28
         1.4.3 异步支持  30
         1.4.4 Stream  34
         1.4.5 Dart与Java及JavaScript的对比  35
         ●第2章 第一个Flutter应用  36
         2.1 计数器应用示例  36
         2.1.1 创建Flutter应用模板  36
         2.1.2 首页  39
         2.2 路由管理  42
         2.2.1 一个简单示例  43
         2.2.2 MaterialPageRoute  44
         2.2.3 Navigator  45
         2.2.4 路由传值  45
         2.2.5 命名路由  47
         2.2.6 路由生成钩子  50
         2.2.7 总结  50
         2.3 包管理  51
         2.4 资源管理  55
         2.5 调试Flutter应用  60
         2.6 Flutter异常捕获  67
         2.6.1 Dart单线程模型  67
         2.6.2 异常捕获  69
         ●第3章 基础组件  73
         3.1 Widget简介  73
         3.1.1 概念  73
         3.1.2 Widget与Element  73
         3.1.3 Widget主要接口  74
         3.1.4 StatelessWidget  75
         3.1.5 StatefulWidget  77
         3.1.6 State  78
         3.1.7 在Widget树中获取State对象  84
         3.1.8 Flutter SDK内置组件库介绍  85
         3.2 状态管理  87
         3.2.1 Widget管理自身状态  88
         3.2.2 父Widget管理子Widget的状态  89
         3.2.3 混合状态管理  91
         3.2.4 全局状态管理  93
         3.3 文本及样式  94
         3.3.1 Text  94
         3.3.2 TextStyle  95
         3.3.3 TextSpan  95
         3.3.4 DefaultTextStyle  96
         3.3.5 字体  97
         3.4 按钮  99
         3.4.1 Material组件库中的按钮  99
         3.4.2 自定义按钮外观  100
         3.5 图片及ICON  102
         3.5.1 图片  102
         3.5.2 ICON  107
         3.6 单选开关和复选框  109
         3.6.1 属性及外观  110
         3.6.2 总结  110
         3.7 输入框及表单  110
         3.7.1 TextField  110
         3.7.2 Form  118
         3.8 进度指示器  122
         3.8.1 LinearProgressIndicator  122
         3.8.2 CircularProgressIndicator  123
         3.8.3 自定义尺寸  124
         3.8.4 颜色动画  125
         3.8.5 自定义进度指示器样式  126
         ●第4章 布局类组件  127
         4.1 布局类组件简介  127
         4.2 线性布局(Row和Column)  128
         4.3 弹性布局(Flex)  133
         4.4 流式布局  136
         4.4.1 Wrap  136
         4.4.2 Flow  137
         4.5 层叠布局  139
         4.6 对齐与相对定位(Align)  141
         4.6.1 Align  142
         4.6.2 Align与Stack对比  144
         4.6.3 Center组件  145
         ●第5章 容器类组件  146
         5.1 填充(Padding)  146
         5.2 尺寸限制类容器  147
         5.2.1 ConstrainedBox  147
         5.2.2 SizedBox  148
         5.2.3 多重限制  149
         5.2.4 UnconstrainedBox  150
         5.2.5 其他尺寸限制类容器  152
         5.3 装饰容器(DecoratedBox)  152
         5.4 变换(Transform)  153
         5.5 Container  156
         5.6 Scaffold、AppBar和底部导航  158
         5.6.1 Scaffold  158
         5.6.2 AppBar  160
         5.6.3 抽屉菜单  163
         5.6.4 FloatingActionButton  165
         5.6.5 底部导航栏  165
         5.7 剪裁(Clip)  166
         ●第6章 可滚动组件  169
         6.1 可滚动组件简介  169
         6.2 SingleChildScrollView  171
         6.3 ListView  172
         6.4 GridView  179
         6.5 CustomScrollView  184
         6.6 滚动监听及控制  187
         6.6.1 ScrollController  187
         6.6.2 滚动监听  191
         ●第7章 功能型组件  194
         7.1 导航返回拦截(WillPopScope)  194
         7.2 数据共享(InheritedWidget)  195
         7.3 跨组件状态共享(Provider)  200
         7.4 颜色和主题  210
         7.4.1 颜色  210
         7.4.2 主题  212
         7.5 异步UI更新  215
         7.5.1 FutureBuilder  216
         7.5.2 StreamBuilder  218
         7.6 对话框详解  219
         7.6.1 使用对话框  219
         7.6.2 打开动画及遮罩  224
         7.6.3 对话框实现原理  226
         7.6.4 对话框状态管理  227
         7.6.5 其他类型的对话框  235
         【第二篇 进阶篇】
         ●第8章 事件处理与通知  242
         8.1 原始指针事件处理  242
         8.2 手势识别  245
         8.2.1 GestureDetector  245
         8.2.2 GestureRecognizer  249
         8.2.3 手势竞争与冲突  251
         8.3 事件总线  253
         8.4 Notification  255
         ●第9章 动画  261
         9.1 Flutter动画简介  261
         9.2 动画基本结构及状态监听  265
         9.2.1 动画基本结构  265
         9.2.2 动画状态监听  270
         9.3 自定义路由切换动画  270
         9.4 Hero动画  273
         9.5 交织动画  275
         9.6 通用切换动画组件  278
         9.6.1 AnimatedSwitcher  279
         9.6.2 AnimatedSwitcher的高级用法  282
         9.7 动画过渡组件  286
         9.7.1 自定义动画过渡组件  286
         9.7.2 Flutter预置的动画过渡组件  293
         ●第10章 自定义组件  297
         10.1 自定义组件方法简介  297
         10.2 组合现有组件  298
         10.3 组合实例:TurnBox  301
         10.4 自绘组件(CustomPaint与Canvas)  305
         10.5 自绘实例:圆形背景渐变进度条  309
         ●第11章 文件操作与网络请求  318
         11.1 文件操作  318
         11.2 通过HttpClient发起HTTP请求  320
         11.3 dio HTTP请求库  327
         11.4 示例:HTTP分块下载  329
         11.5 使用WebSockets  334
         11.6 使用Socket API  338
         11.7 JSON转Dart Model类  338
         ●第12章 包与插件  348
         12.1 开发Package  348
         12.2 插件开发:平台通道简介  352
         12.3 开发Flutter插件  355
         12.4 插件开发:Android端API实现  357
         12.5 插件开发:iOS端API实现  360
         12.6 Texture和PlatformView  364
         12.6.1 Texture(示例:使用摄像头)  364
         12.6.2 PlatformView(示例:WebView)  373
         ●第13章 国际化  375
         13.1 让APP支持多语言  375
         13.2 实现Localizations  379
         13.3 使用Intl包  381
         13.4 国际化中的常见问题  386
         ●第14章 Flutter核心原理  388
         14.1 Flutter UI系统  388
         14.2 Element与BuildContext  390
         14.2.1 Element  390
         14.2.2 BuildContext  391
         14.3 RenderObject和RenderBox  395
         14.3.1 布局过程  395
         14.3.2 绘制过程  398
         14.3.3 命中测试  401
         14.3.4 语义化  402
         14.3.5 总结  403
         14.4 Flutter运行机制:从启动到显示  403
         14.5 图片加载原理与缓存  410
         14.5.1 ImageProvider  410
         14.5.2 Image组件原理  418
         【第三篇 实例篇】
         ●第15章 一个完整的Flutter应用  422
         15.1 GitHub客户端示例  422
         15.2 Flutter APP代码结构  423
         15.3 Model类定义  424
         15.4 全局变量及共享状态  427
         15.4.1 全局变量:Global类  427
         15.4.2 共享状态  428
         15.5 网络请求封装  430
         15.5.1 网络接口缓存  430
         15.5.2 封装网络请求  433
         15.6 APP入口及主页  435
         15.6.1 APP入口  435
         15.6.2 主页  437
         15.6.3 抽屉菜单  443
         15.7 登录页  446
         15.8 多语言和多主题  449
         15.8.1 语言选择页  449
         15.8.2 主题选择页  451
         参考文献  452
      · · · · · ·     (
收起)