为你推荐
前折页
书名页
版权
前言
第1章 全新的Android UI框架
1.1 Jetpack Compose是什么
1.1.1 谷歌为什么要推出Compose
1.1.2 命令式UI与声明式UI
1.1.3 Compose API设计原则
1.1.4 Compose与View的关系
1.1.5 不只是Android UI框架
1.2 搭建开发环境
1.2.1 准备所需要的开发工具
1.2.2 部署开发环境
1.3 创建第一个Compose应用
1.3.1 创建新的Compose项目
1.3.2 保持Compose版本更新
1.3.3 在模拟器中运行Compose应用
1.3.4 分析第一个Compose应用
1.3.5 对Compose应用进行预览
1.3.6 已有项目引入Compose
1.4 本章小结
第2章 了解常用UI组件
2.1 Modifier修饰符
2.1.1 常用修饰符
2.1.2 作用域限定Modifier修饰符
2.1.3 Modifier实现原理
2.2 常用的基础组件
2.2.1 文字组件
2.2.2 图片组件
2.2.3 按钮组件
2.2.4 选择器
2.2.5 对话框
2.3 常用的布局组件
2.3.1 线性布局
2.3.2 帧布局
2.3.3 Spacer留白
2.3.4 ConstraintLayout约束布局
2.3.5 Scaffold脚手架
2.4 列表
2.4.1 LazyComposables
2.4.2 LazyListScope作用域
2.4.3 内容填充
2.5 本章小结
第3章 定制UI视图
3.1 构建UI页面
3.1.1 配置颜色、字体与形状
3.1.2 Welcome欢迎页
3.1.3 LoginIn登录页
3.1.4 Home主页
3.1.5 布局预览
3.2 主题
3.2.1 MaterialTheme介绍
3.2.2 理解MaterialTheme与CompositionLocal
3.2.3 定制主题方案
3.3 本章小结
第4章 状态管理与重组
4.1 状态管理
4.1.1 什么是状态
4.1.2 单向数据流
4.1.3 Stateless与Stateful
4.1.4 状态的定义
4.1.5 状态上提
4.1.6 状态的持久化与恢复
4.1.7 使用ViewModel管理状态
4.1.8 LiveData、RxJava、Flow转State
4.1.9 状态的分层管理
4.2 重组与自动刷新
4.2.1 智能的重组
4.2.2 避免重组的“陷阱”
4.2.3 如何确定重组范围
4.2.4 优化重组的性能
4.3 生命周期与副作用
4.3.1 Composable的生命周期
4.3.2 Composable的副作用
4.3.3 副作用API
4.3.4 异步处理的副作用API
4.3.5 状态创建的副作用API
4.3.6 副作用API的观察参数
4.4 本章小结
第5章 Compose组件渲染流程
5.1 组合
5.2 布局
5.2.1 LayoutModifier
5.2.2 LayoutComposable
5.2.3 固有特性测量Intrinsic
5.2.4 SubcomposeLayout
5.3 绘制
5.3.1 Canvas Composable
5.3.2 DrawModifier
5.3.3 使用平台原生Canvas
5.3.4 实战:Canvas绘制波浪加载
5.4 本章小结
第6章 让页面动起来:动画
6.1 动画分类
6.2 高级别动画API
6.2.1 AnimatedVisibiliy
6.2.2 AnimatedContent
6.2.3 Crossfade
6.2.4 Modifier.animateContentSize
6.3 低级别动画API
6.3.1 animate*AsState
6.3.2 Animatable
6.4 Transition过渡动画
6.4.1 updateTransition
6.4.2 rememberInfiniteTransition
6.5 AnimationSpec动画规格
6.5.1 spring弹跳动画
6.5.2 tween补间动画
6.5.3 keyframes关键帧动画
6.5.4 repeatable循环动画
6.5.5 infiniteRepeatable无限循环动画
6.5.6 snap快闪动画
6.5.7 使用Easing控制动画节奏
6.6 AnimationVector动画矢量值
6.6.1 TwoWayConverter
6.6.2 自定义实现TwoWayConverter
6.7 实战:Compose实现骨架屏的动画效果
6.7.1 定义背景色
6.7.1 为Brush添加动画
6.7.2 实现骨架屏布局
6.8 实战:Compose实现收藏按钮动画效果
6.8.1 实现方式1:高级别API(AnimatedContent)
6.8.2 实现方式2:低级别API(updateTransition)
6.9 本章小结
第7章 增进交互体验:手势处理
7.1 常用的手势处理Modifier
7.1.1 Clickable点击
7.1.2 CombinedClickable复合点击
7.1.3 Draggable拖动
7.1.4 Swipeable滑动
7.1.5 Transformable多点触控
7.1.6 Scrollable滚动
7.1.7 NestedScroll嵌套滑动
7.2 定制手势处理
7.2.1 使用PointerInput Modifier
7.2.2 手势事件方法作用域awaitPointerEventScope
7.3 手势结合动画
7.4 本章小结
第8章 为Compose添加页面导航
8.1 在Compose中使用Navigation
8.1.1 认识Jetpack Navigation
8.1.2 Navigation for Compose
8.1.3 导航时携带参数
8.1.4 Navigation搭配底部导航栏
8.1.5 嵌套导航图Nested Navigation Graph
8.1.6 导航DeepLinks
8.1.7 Navigation对ViewModel的支持
8.2 在Compose中使用Hilt
8.2.1 认识Dagger Hilt
8.2.2 在Compose中使用Hilt
8.3 本章小结
第9章 Accompanist与第三方组件库
9.1 Accompanist
9.1.1 SystemUiController
9.1.2 Pager
9.1.3 SwipeRefresh
9.1.4 Flow Layouts
9.1.5 Insets
9.2 Lottie
9.2.1 配置依赖
9.2.2 Lottie动画资源
9.2.3 创建Lottie动画
9.3 Coil
9.3.1 配置依赖
9.3.2 AsyncImage
9.3.3 SubcomposeAsyncImage
9.3.4 AsyncImagePainter
9.4 本章小结
第10章 项目实战:小游戏Tetris
10.1 整体项目架构
10.2 砖块矩阵(BrickMatrix)
10.2.1 drawBrick绘制砖块单元
10.2.2 drawMatrix绘制砖块矩阵
10.3 下落中的砖块(Sprite)
10.3.1 Shape砖块组合形状
10.3.2 Sprite定义下落砖块
10.3.3 drawSprite绘制下落砖块
10.4 游戏机体(GameBody)
10.4.1 GameButton
10.4.2 组装Button、发送Action
10.4.3 Clicable:分发事件
10.5 订阅游戏状态(ViewState)
10.5.1 ViewState
10.5.2 Action
10.5.3 reduce
10.6 预览游戏画面
第11章 项目实战:聊天应用Chatty
11.1 整体系统架构
11.2 登录注册模块
11.3 IM聊天模块
11.3.1 对话列表页
11.3.2 对话详情页
11.4 联系人模块
11.4.1 通讯录页
11.4.2 添加搜索页
11.4.3 二维码扫描页
11.4.4 陌生人信息页
11.5 用户信息模块
11.5.1 个人信息页
11.5.2 信息编辑页
11.5.3 联系人信息页
11.6 发现模块
11.7 适配暗黑主题
后折页
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜