首先,我尝试了所有可用的解决方案,但我仍然没有得到这个问题的答案。
我有一个活动,其中包含很少会填充ViewPager的片段,我以这种方式填充viewPager的方式。
fragment = getSupportFragmentManager();
fragment.beginTransaction()
.replace(R.id.homepageVp, newFrag)
.addToBackStack(null)
.commit();
支持有片段A,我使用上面的代码用片段B替换它,然后这是我的问题,是否可以从片段A移动到片段B并使用上面的代码移回片段A但仍然包含数据来自之前的替换(第一个)。
我尝试过使用
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(VAR_KEY, jsonResult);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
jsonResult = savedInstanceState.getString(VAR_KEY);
}
在Fragment A中,这是我的理解,执行onSaveInstanceState以保存jsonResult变量,以便稍后再次创建我的活动时,执行onActivityCreated并将前一个值放入jsonResult变量中。但是没有用,所以也许我犯了一个错误,或者我对Fragment LifeCycle的理解不正确。
答案 0 :(得分:0)
如果您不想在viewPager
中重新创建片段,只需在offscreenPageLimit
中设置viewPager
,如下所示:
viewPager.setOffscreenPageLimit(/*Total no of fragments*/);