我想做以下事情。第一个和第二个有两个片段。有必要在它们之间进行过渡。当我从第二个片段中的第一个片段开始时,首先存储在堆栈中。当我单击后退按钮时,第二个片段被删除并从堆栈中返回第一个片段。我再次无法进入第二个片段 - 它已被删除。我怎么解决这个问题?
在主要活动中(Fragment1 的回调):
@Override
public void onNavigate() {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment1 newFragment1 = (Fragment1) getFragmentManager().findFragmentByTag("frag_1");
Fragment2 newFragment2 = (Fragment2) getFragmentManager().findFragmentByTag("frag_2");
ft.replace(R.id.main, newFragment2);
ft.remove(newFragment1);
ft.addToBackStack(null);
ft.commit();
}
我动态添加的片段:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.main, new Fragment1(), "frag_1");
ft.add(R.id.main, new Fragment2(), "frag_2");
ft.commit();