如何在BottomSheetDialogFragment中使用getViewLifecycleOwner()

问题描述 投票:0回答:1

我的自定义片段扩展了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()也没有解决这个崩溃。

android android-dialogfragment android-livedata
1个回答
0
投票

如果将代码放在onActivityCreated()中不起作用,请尝试使用getViewLifecycleOwnerLiveData()并在其上观察LifecycleOwner


不完全是你要求的,但如果你只是想要片段的LifeCycle,我相信你可以用这样的东西得到它:

 @NonNull
 @Override
 public Lifecycle getLifecycle() {
     return super.getLifecycle();
 }
© www.soinside.com 2019 - 2024. All rights reserved.