上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第3章 Navigation
3.1 Navigation的诞生
单个Activity嵌套多个Fragment的UI架构模式,已经被大多数Android工程师所接受和采用。但是,对Fragment的管理一直是一件比较麻烦的事情。工程师需要通过FragmentManager和FragmentTransaction来管理Fragment之间的切换。页面的切换通常还包括对应用程序App bar[1]的管理、Fragment间的切换动画,以及Fragment间的参数传递。纯代码的方式使用起来不是特别友好,并且Fragment和App bar在管理和使用的过程中显得很混乱。
为此,Jetpack提供了一个名为Navigation的组件[2],旨在方便我们管理页面[3]和App bar。它具有以下优势。
● 可视化的页面导航图,类似于Apple Xcode中的StoryBoard,便于我们理清页面间的关系。
● 通过destination和action完成页面间的导航。
● 方便添加页面切换动画。
● 页面间类型安全的参数传递。
● 通过NavigationUI类,对菜单、底部导航、抽屉菜单导航进行统一的管理。
● 支持深层链接DeepLink。