有个需求是从Activity传参到navigation的第一个Fragment中。在navigation中fragment与fragment之间的传参很简单,但是从Activity传到navigation的fragment貌似有些不一样。。。
我项目中的startDestination是PasswordFragment。PhoneLoginActivity是navigation所依附的Activity。这里要实现PhoneLoginActivity传递参数到fragment
- 在nav_graph(这是我项目中的文件名)中的PasswordFragment所在节点下添加Argument
......
- 在PhoneLoginActivity的onStart方法里,这里PasswordFragment是navigation的第一个Fragment
override fun onStart() {
super.onStart()
//将参数传递给Navigation的startDestination
val args = PasswordFragmentArgs(loginUseEmail)
val controller = Navigation.findNavController(this, R.id.nav_host_fragment)
controller.setGraph(R.navigation.login_nav_graph,args.toBundle())
}
- 最后再PasswordFragment中拿到参数
private val args: PasswordFragmentArgs by navArgs() ...... val loginUseEmail = args.loginUseEmail



