我正在尝试在我的项目中使用一个活动。 在主片段i用户视图页面和选项卡布局中,ViewPager包含五个片段,在第一个片段中包含两个片段i形成一个片段导航到新片段,当返回时我丢失了ViewPager片段中的所有数据。
就像这样 在此处输入链接说明
正如@Ail告诉我的。 我修复了这个错误。
前面的代码:
protected View mView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mView = inflater.inflate(getRootView(), container, false);
initView();
initData();
return mView;
}
代码之后:
public View mView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if (mView == null) {
mView = inflater.inflate(getRootView(), container, false);
initView();
initData();
}
return mView;
}
您有一个活动,这意味着您正在使用架构导航组件。
当您导航回主屏幕时,您的回调方法(如onViewCreated
(被召回。您应该保留对主屏幕中第一次创建的视图的引用,并再次返回它,如Ian Lake所建议的那样:
https://twitter.com/ianhlake/status/1103522856535638016
另请查看使用Jetpack的Android导航组件销毁/重新创建的碎片