Navigation
说到Navigation Editor我们就不得不先简单说一下Navigation(导航)
什么是Navigation
在Android开发当中,导航是指允许用户再应用内进入和退出不同内容的交互组件。而我们通过 Android Jetpack的导航组件可以帮助我们实现导航功能。导航组件还能可能遵循既定的原则来保证用户有一个良好的用户体检。
导航组件的构成
导航组件由三个关键的部分组成:
Navigation graph(导航图):
这是一个包含所有位置导航相关信息的XML资源文件。这里包括应用程序当中的所有单独的内容区域(被称为目标视图),以及连接在应用程序当中各个“目标”的路径。
NavHost:
一个用于展示导航图当中目标视图的空的容器。Navigation组件包含一个实现NavHostFragment的默认的NavHost,它是用来展示fragment的目的地。
NavController:
管理NavHost中的应用程序导航的对象。 当用户在整个应用程序中移动时,NavController会协调NavHost中目标内容的交换。
当我们通过导航浏览我们的应用程序的时候,我们可以通知NavController我们要沿着导航图当中的特定的路径进行导航,或者直接导航到特定的目的地。接下来NavController可以在NavHost当中显示出适当的目标视图。
导航组件有很多的好处:
- 可以处理fragment的事务。
- 默认情况下可以正确的处理好各个事物之间前后的操作。
- 可以供标准化的过渡动画资源。
- 实现和处理深度链接。
- 涵盖了一些导航UI模式,比如只需要很少的额外工作就能实现抽屉导航和底部导航。
- Safe Args – 一种Gradle插件,可在目的地之间导航和传递数据时提供安全的数据类型。