gpt4 book ai didi

android - 用于实例化 ViewModel 的首选 Fragment 生命周期方法

转载 作者:行者123 更新时间:2023-12-01 20:07:07 28 4
gpt4 key购买 nike

android-architecture-components/GithubBrowserSample存储库中,Fragment#onViewCreated 生命周期方法用于 ViewModel 实例化(具有 Fragment 作用域)对于使用数据绑定(bind) + LiveData + ViewModel 组合的 Fragment:

来自该存储库的 SearchFragment.kt ^:

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
searchViewModel = ViewModelProviders.of(this, viewModelFactory)
...
}

对于这些 Fragment 生命周期方法(例如 onAttachonCreateonViewCreated<)是否有任何官方指南或共识onActivityCreated 是使用 ViewModelProviders.of(fragment) 实例化 FragmentViewModel 的最佳/最安全位置, viewModelFactory) 方法? (给定数据绑定(bind) + LiveData 组合,如果这有区别的话)

尝试了解将 ViewModel 实例化放入任何早期生命周期方法(例如 onAttach/onCreate)的一般优点/缺点,例如(当然是在调用 super 之后)。

提前致谢。

最佳答案

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
searchViewModel = ViewModelProvider().get(this, viewModelFactory)

这是正确的,常见的错误往往是用于观察 LiveData 的生命周期所有者。

    // also in onViewCreated
searchViewModel.observe(viewLifecycleOwner) { items ->
....
}

关于android - 用于实例化 ViewModel 的首选 Fragment 生命周期方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882366/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com