【发布时间】:2020-06-29 03:01:11
【问题描述】:
我有一个具有以下架构的应用:
-
Navigator是一个自定义类,包含NavController -
Cooridnator持有Navigator -
Cooridnator告诉Navigator“启动” framgent 并将ViewModel传递给它 -
Navigator要求NavController导航到NavDirections并提供所需的参数(使用 Safe-Args)
现在这里的问题是,如果我想发送 ViewModel 作为参数,它需要是 Parcelable 以及它的所有底层类(这将使我的大部分代码 Parcelable,这并不是真正需要的) .
那么有没有办法做到这一点而不使所有东西都可以 Parcelable 或使用 Dagger ? (不喜欢 Dagger,因为它给代码增加了太多的复杂性......)
我可以在 Fragment 中有一个 lateinit 字段并手动设置它,但似乎无法从 NavDirections 访问 Fragment
知道我该怎么做吗?
【问题讨论】:
标签: android kotlin dependency-injection android-architecture-navigation android-safe-args