【发布时间】:2019-12-18 08:36:46
【问题描述】:
我在我的应用程序中使用导航组件,并且还在同一个图中的多个片段之间使用共享 ViewModel。现在我想用this 实例化这个图形范围的 ViewModel。
如你所知,在片段中we should inject objects ( ViewModel,..etc ) in onAttach:
但是当我想这样做时(在onAttach 中注入带有图形范围的 ViewModel),就会发生此错误:
IllegalStateException: NavController is not available before onCreate()
你知道我该怎么做吗?
【问题讨论】:
-
你在 onStart() 中使用的是 NavController 吗?
-
不在
onStart()中。我使用 NavController 在onAttach()@MohammedRampurawala 中获取 navGraph 的 viewModelStore -
在调用 onCreate() 后需要使用 NavController。这意味着您的活动视图已初始化。
-
技术上你也可以在
onCreate而不是onAttach里面做。
标签: android dagger-2 android-viewmodel android-architecture-navigation fragment-lifecycle