val scoreFragmentArgs1 by navArgs<ScoreFragmentArgs>()
val scoreFragmentArgs2 = ScoreFragmentArgs.fromBundle(arguments!!)
我可以使用上述任何语句访问从前一个片段传递的参数。有人可以解释区别以及何时使用它们。提前致谢
val scoreFragmentArgs1 by navArgs<ScoreFragmentArgs>()
val scoreFragmentArgs2 = ScoreFragmentArgs.fromBundle(arguments!!)
我可以使用上述任何语句访问从前一个片段传递的参数。有人可以解释区别以及何时使用它们。提前致谢
第二个调用更简单。每当该行运行时,都会对其进行热切评估,因此它将要求arguments
捆绑包已经就位,并包含您希望在其中包含的所有密钥。
第一种方法给你一个懒惰创建的Args
实例,它只会在你第一次尝试读取它的值时被初始化。因此在类级别声明它是安全的。有关所有详细信息,请参阅navArgs
文档。最重要的部分:
强烈建议仅在使用
androidx.navigation.NavController.navigate
相应androidx.navigation.NavDirections
对象启动 Activity 时使用此方法,以确保存在所需的参数。该属性只有在
Activity
附加到应用程序后才能访问,在此之前访问将导致IllegalStateException
.