2
私は自分のアクティビティでFragmentを別のFragmentに置き換えようとしています。Android Add Transaction without Transaction
あなたが動的に作成された断片と、静的にレイアウトファイルで定義されたフラグメントを置き換えることはできませんように見えます: Android: can't replace one fragment with another
提案された解決策はのonCreateメソッドで動的にオリジナルのフラグメントを追加しました:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ShelfFragment shelves = new ShelfFragment();
ft.add(R.id.left_fragment, shelves);
ft.addToBackStack(null);
ft.commit();
}
これは機能しますが、ユーザーが戻るボタンを押すと、FragmentTransactionによってFragmentManagerスタックに追加されたため、元のFragmentが削除されます。
トランザクション/スタックエントリなしで自分のアクティビティに最初のフラグメントを追加する方法はありますか?
addToBackStack呼び出しを削除すると、元のFragmentを後でFragmentTransaction.replaceに置き換えようとすると、元のフラグメントが戻っても戻ってこない場合があります。 –