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

时间:2019-02-26 08:20:05

标签: android mvvm viewmodel android-livedata

在ListItemFragment的onCreateView的底部,我进行了网络调用以获取所有项目。像这样:

viewmodel.getAllItems()

然后,观察数据以将项目填充到RecyclerView中。 当用户单击每个项目时,我正在使用导航体系结构组件导航到ItemDetailFragment。 问题是,当我按下返回按钮时,ListItemFragment的onCreateView再次调用,然后viewmodel.getAllItems()也再次调用。 因此,我要防止再次调用getAllItems(),并保持RecyclerView的当前位置。

1 个答案:

答案 0 :(得分:0)

YourItemType yourItems; //define this as global field

在onCreateView中;

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