Android ViewModel+;片段中的LiveData,从ItemDetailFragment返回时如何保留ListItemFragment的数据
在ListItemFragment的onCreateView的底部,我进行了一个网络调用以获取所有项目。像这样:Android ViewModel+;片段中的LiveData,从ItemDetailFragment返回时如何保留ListItemFragment的数据,android,mvvm,viewmodel,android-livedata,Android,Mvvm,Viewmodel,Android Livedata,在ListItemFragment的onCreateView的底部,我进行了一个网络调用以获取所有项目。像这样: viewmodel.getAllItems() 然后,观察数据以将项目填充到RecyclerView。 当用户单击每个项目时,我使用导航架构组件导航到ItemDetailFragment。 问题是,当我点击后退按钮时,ListItemFragment的onCreateView调用再次出现,然后viewmodel.getAllItems()也再次调用。 所以,我想要的是防止再次调用g
viewmodel.getAllItems()
然后,观察数据以将项目填充到RecyclerView。
当用户单击每个项目时,我使用导航架构组件导航到ItemDetailFragment。
问题是,当我点击后退按钮时,ListItemFragment的onCreateView调用再次出现,然后viewmodel.getAllItems()也再次调用。
所以,我想要的是防止再次调用getAllItems(),并保持RecyclerView的当前位置
YourItemType yourItems; //define this as global field
在onCreateView中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle
if(yourItems == null){
yourItems = viewmodel.getAllItems();
}
}
在onCreateView中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle
if(yourItems == null){
yourItems = viewmodel.getAllItems();
}
}
我关心的是,它有很多样板代码来检查全局变量,或者检查LiveData的内部,对吗?在活动中使用ViewModel+LiveData,我们不必这样做:(我关心的是,它有许多样板代码来检查全局变量,或者检查LiveData的观察权限?在活动中使用ViewModel+LiveData,我们不必这样做:(