我的自定义片段扩展了BottomSheetDialogFragment。我有ViewModel,并且观察到一些LiveData对象。我想在观察者中使用getViewLifecycleOwner()
。但是它与此日志一起崩溃:
java.lang.IllegalStateException: Can't access the Fragment View's LifecycleOwner when getView() is null i.e., before onCreateView() or after onDestroyView()
BottomSheetDialog使用onCreateDialog()
,因此不会调用onViewCreated()
。让我的观察者进入onActivityCreated()
并不能解决此崩溃问题。
答案 0 :(得分:0)
如果无法将代码放入onActivityCreated()
中,请尝试使用getViewLifecycleOwnerLiveData()
并观察其上的LifecycleOwner
。
并非完全符合您的要求,但是如果您只想要片段的LifeCycle
,我相信您可以通过以下方式获得它:
@NonNull
@Override
public Lifecycle getLifecycle() {
return super.getLifecycle();
}