我的自定义片段扩展了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()
也没有解决这个崩溃。
如果将代码放在onActivityCreated()
中不起作用,请尝试使用getViewLifecycleOwnerLiveData()
并在其上观察LifecycleOwner
。
不完全是你要求的,但如果你只是想要片段的LifeCycle
,我相信你可以用这样的东西得到它:
@NonNull
@Override
public Lifecycle getLifecycle() {
return super.getLifecycle();
}