简体   繁体   English

片段中的ViewModel + LiveData,从ItemDetailFragment导航回去时如何保留ListItemFragment的数据

[英]ViewModel + LiveData in Fragment, How to keep data of the ListItemFragment when navigate back from ItemDetailFragment

At the bottom in the onCreateView of ListItemFragment, i make a network call to get all items. 在ListItemFragment的onCreateView的底部,我进行网络调用以获取所有项目。 like this: 像这样:

viewmodel.getAllItems()

Then, observe the data to populate items to the RecyclerView. 然后,观察数据以将项目填充到RecyclerView。 I'm using Navigation Architecture Component to navigate to ItemDetailFragment when User click on each Item. 当用户单击每个项目时,我正在使用导航体系结构组件导航到ItemDetailFragment。 The problem is, when i hit back button, ListItemFragment's onCreateView call again, then viewmodel.getAllItems() also call again. 问题是,当我按下返回按钮时,ListItemFragment的onCreateView再次调用,然后viewmodel.getAllItems()也再次调用。 So, what i want is prevent call getAllItems() again, and keep current position of RecyclerView. 因此,我要防止再次调用getAllItems(),并保持RecyclerView的当前位置。

YourItemType yourItems; //define this as global field

In onCreateView; 在onCreateView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle 
  if(yourItems == null){
     yourItems = viewmodel.getAllItems();
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 即使片段被破坏,我如何保持 livedata 在视图模型中运行? - How can i keep livedata running in viewmodel even fragment is destroyed? 如何从 ViewModel 导航到 Fragment in Android Kotlin - How to navigate from ViewModel to a Fragment in Android Kotlin 如何通过 ViewModel 从 Fragment 观察 Repository LiveData - How to observe Repository LiveData from Fragment via ViewModel 如何使用LiveData和ViewModel类将数据从Activity发送到Fragment - How can i send data from Activity to Fragment using LiveData and ViewModel class 如何使用 viewmodel 和 livedata 将数据从 recyclerview 传递到 android 中的片段 - How can i pass the data from recyclerview to fragment in android using viewmodel and livedata 导航回上一个片段时数据重复 - Data is duplicating when navigate back to previous fragment 使用 ViewModel 和 LiveData 将数据保存回数据库 - Saving data back to DB with ViewModel and LiveData 如何从 livedata 中删除观察者,使其在导航回片段时不会显示两次 - How to remove an observer from livedata so it doesn't show twice when navigating back to the fragment 无法从片段中的ViewModel观察LiveData - Can't Observe LiveData from ViewModel in Fragment 如何从片段导航回活动? - How to navigate back from a Fragment to an Activity?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM