17

次のコードについて何か考えはありますか? 私のテストでは、置き換えられたフラグメントが破棄されておらず、バック スタックをポップしてもインスタンスがまだ残っていることがわかりました。これがフラグメントトランザクションを使用する有効な方法であることを確認するだけです。

getSupportFragmentManager().beginTransaction().addToBackStack(null).replace(frame, fragmentB).commit();

置換を使用する理由は、置換されたフラグメントが終了アニメーションを実行するためです。

4

1 に答える 1

24

フラグメント トランザクションの Android デザイナー ガイドを参照できます: http://developer.android.com/guide/components/fragments.html

具体的には、以下のスニペット:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

そうです、あなたがしていることは、フラグメントを置き換える正しいアプローチです。

于 2013-11-08T16:10:28.657 に答える