4

Androidでフラグメントを理解するための簡単なアプリケーションを作成しています。すべてが単純に見えますが、1 つを除いて、つまり、複数のフラグメントを動的に LeniarLayout に追加しました。正常に機能しましたが、そのコンテナ レイアウトで他の fragment を使用して replace を呼び出そうとすると、以前に追加されたすべての fragment が削除されません。なぜそのような振る舞いをするのですか?

Android api は、「コンテナに追加された既存のフラグメントを置き換えます。これは、同じ containerViewId で追加された現在追加されているすべてのフラグメントに対して remove(Fragment) を呼び出し、次に add(int, Fragment, String) をここで与えられたのと同じ引数です。」

私を案内してください。

4

1 に答える 1

0

コミットするのを忘れたのではないでしょうか?

これは動作するための完全なフローです:

final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content_fragment, myFragment, myFragment.name );
transaction.commit();

お役に立てれば。

于 2014-11-13T16:40:52.920 に答える