其中,destination指定了要跳转到的fragment,这也就是为什么在导航文件中创建fragment时要指定id的原因。定义好action之后,在FirstFragment中添加跳转的点击事件,使用Navigation将页面导航到SecondFragment中:
val view=inflater.inflate(R.layout.fragment_first, container, false)
val binding = FragmentFirstBinding.bind(view)
binding.btnFirst.setOnClickListener {
Navigation.findNavController(view!!).navigate(R.id.first_to_second)
}
navigate方法接收的参数就是前面定义的action。
2.6 添加转场动画
刚刚创建的跳转过程默认是没有动画效果的,现在把转场动画效果加上。修改导航文件中的action,添加动画属性:
运行程序,切换页面时就可以看到动画效果。
2.7 使用NavigationUI
2.7.1 NavigationUI的意义
在Navigation组件中,导航图是很重要的一部分,可以帮助我们了解页面之间的关系,并且快速完成页面间的切换,而在页面切换的过程中还伴随着菜单栏的变化。对于不同的页面,AppBar中的menu菜单很可能是不一样的。并且AppBar中的按钮和菜单同样可能承担着页面切换的工作,为了统一管理,JetPack引入了NavigationUI组件来将AppBar与Nav