1
我想要执行以下操作。有两个片段第一个和第二个。必须在它们之间进行转换。当我从第二个片段开始,首先存储在堆栈中。当我点击后退按钮时,第二个片段被移除并从堆栈中返回第一个片段。我再次无法进入第二个片段 - 它已被删除。我怎么解决这个问题?在两个片段之间切换
在主要活动(回调片段1):我动态添加
@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();
为什么你叫ft.remove(newFragment1);如果你已经取代它,并已被删除了? –
只是为了:)但问题是按下Back键时破坏片段2。 – Vladimir
你想在单击返回按钮后访问Fragment2对象吗? –