哪种方法是正确的:
将
Fragment
实例作为lifecycleOwner
传递:override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { val binding = FragmentEventSettingsBinding.inflate(inflater, container, false) binding.lifecycleOwner = this return binding.root }
传递
fragment
的viewLifecycleOwner
:override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { val binding = FragmentEventSettingsBinding.inflate(inflater, container, false) binding.lifecycleOwner = viewLifecycleOwner return binding.root }
最佳答案
推荐的解决方案是通过支持库 28.0.0 和 AndroidX 1.0.0 中添加的 getViewLifecycleOwner() 或 getViewLifecycleOwnerLiveData() 使用 fragment 的 View 生命周期,这样每次 fragment 的 View 被销毁时 LiveData 都会删除观察者
关于android - 在数据绑定(bind)上调用 setLifecycleOwner 时,我应该传递从 getViewLifecycleOwner 返回的 Fragment 实例还是所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58732672/