[英]Switch between two fragments
我要執行以下操作。 首先有兩個片段。 必須在它們之間進行過渡。 當我從第二個片段中的第一個片段開始時,首先將其存儲在堆棧中。 當我單擊“后退”按鈕時,第二個片段將被刪除,並從堆棧中返回第一個片段。 再次,我不能進入第二個片段-它已被刪除。 我怎么解決這個問題?
在主要活動中(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();
我解決了這個問題:)。 我隱藏了第一個片段,並將事務添加到后台堆棧。 當我單擊返回按鈕時,我返回到片段
@Override
public void onNavigate() {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment1 newFragment1 = (Fragment1) getFragmentManager().findFragmentByTag("frag_1");
ft.hide(newFragment1);
ft.addToBackStack(null);
ft.commit();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.