MainActivity があり、ListFragment と framelayout が含まれています。アイテムのクリック時にリストのフラグメントを変更できます。
のボタンをクリックすると、既存Fragment1
のものを新しいものに置き換えるのに問題があります。同じ ListFragment と Fragment1 を表示します。Fragment2
Fragment1
Fragment2
Fragment1
Fragment2
MainActivity があり、ListFragment と framelayout が含まれています。アイテムのクリック時にリストのフラグメントを変更できます。
のボタンをクリックすると、既存Fragment1
のものを新しいものに置き換えるのに問題があります。同じ ListFragment と Fragment1 を表示します。Fragment2
Fragment1
Fragment2
Fragment1
Fragment2
2 つのフラグメントを切り替えるにはを使用する必要があり.replace
ます。また、元のフラグメントをバックスタックに追加して呼び出す必要があります。そのように機能するには、バック キー操作をオーバーライドする必要があります。次のようになります (私のプロジェクトのコードを使用し、サポート ライブラリを使用します)。
最初のフラグメントを表示するには:
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;
}