0

MainActivity があり、ListFragment と framelayout が含まれています。アイテムのクリック時にリストのフラグメントを変更できます。

のボタンをクリックすると、既存Fragment1のものを新しいものに置き換えるのに問題があります。同じ ListFragment と Fragment1 を表示します。Fragment2Fragment1Fragment2Fragment1Fragment2

4

1 に答える 1

8

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;
}
于 2012-09-01T12:09:11.817 に答える