我有MainActivity,它包含ListFragment和framelayout,我可以更改項目單擊列表上的片段。片段替換現有片段
我有一個問題,用新的Fragment2
替換現有Fragment1
,對Fragment1
按一下按鈕,Fragment2
應更換Fragment1
,並應有在左邊相同的ListFragment,和後退按鈕應妥善處理,這意味着當我在Fragment2
並按下後退按鈕它應該顯示相同的ListFragment和Fragment1。
我有MainActivity,它包含ListFragment和framelayout,我可以更改項目單擊列表上的片段。片段替換現有片段
我有一個問題,用新的Fragment2
替換現有Fragment1
,對Fragment1
按一下按鈕,Fragment2
應更換Fragment1
,並應有在左邊相同的ListFragment,和後退按鈕應妥善處理,這意味着當我在Fragment2
並按下後退按鈕它應該顯示相同的ListFragment和Fragment1。
您需要使用.replace
來切換這兩個片段,您還需要添加原件到backstack中,以便您可以調用它,並且您需要覆蓋後退鍵操作以實現這種功能。它看起來像這樣(從我的一個項目使用的代碼,使用支持庫):
要顯示你的第一個片段:
menu = new MenuFragment_Main(); // instantiate fragment
getSupportFragmentManager().beginTransaction().replace(R.id.pane, menu).commit(); // display fragment
要交換它爲新的片段,並將其添加到堆棧中:
ListFragment_ShopListItem shoplist = new ListFragment_ShopListItem(); // instantiate fragment
getSupportFragmentManager().beginTransaction().replace(R.id.pane, shoplist).addToBackStack(null).commit(); // replace original fragment with new fragment, add original to backstack
並覆蓋返回鍵返回到前一個片段:
public void onBackPressed() {
FragmentManager fm = getActivity().getSupportFragmentManager();
fm.popBackStack();
return;
}
謝謝@Barak。它對我來說工作得很好........ – Balaji
顯示您的代碼,所以我們知道你到目前爲止嘗試過什麼 –