所以,Android Jetpack学习之旅就开始了。
本人打算每周学习一个组件(上图的左上区域),最后将所学的组件组成一个简单的Demo。同时,刚刚过去的2019年谷歌开发者大会宣布亲儿子Kotlin
成为开发Android的首选语言,所以本文的Demo也将都会采用Kotlin
编写。
本章结束后登录部分完成效果:
语言:Kotlin
Demo地址:https://github.com/mCyp/Hoo
1. 定义
Navigation
是什么呢?谷歌的介绍视频上说:
Navigation
是一个可简化Android导航的库和插件
更确切的来说,Navigation
是用来管理Fragment
的切换,并且可以通过可视化的方式,看见App的交互流程。这完美的契合了Jake Wharton大神单Activity的建议。
2. 优点
-
处理
Fragment
的切换(上文已说过) -
默认情况下正确处理
Fragment
的前进和后退 -
为过渡和动画提供标准化的资源
-
实现和处理深层连接
-
可以绑定
Toolbar
、BottomNavigationView
和ActionBar
等 -
SafeArgs
(Gradle插件) 数据传递时提供类型安全性 -
ViewModel
支持
3. 准备
如果想要进行下面的学习,你需要 3.2 或者更高的Android studio
。
4. 学习方式
最好的学习方式仍然是通过官方文档,下面是官方的学习地址:
谷歌官方教程:Navigation Codelab
谷歌官方文档:Navigation
官方Demo:Demo地址
在实战之前,我们先来了解一下Navigation
中最关键的三要素,他们是:
| 名词 | 解释 |
| — | — |
| Navigation Graph
(New XML resource) | 如我们的第一张图所示,这是一个新的资源文件,用户在可视化界面可以看出他能够到达的Destination
(用户能够到达的屏幕界面),以及流程关系。 |
| NavHostFragment
(Layout XML view) | 当前Fragmen