15

I'm using support package v4.

mFragmentManager = getSupportFragmentManager();

FragmentTransaction ft = mFragmentManager.beginTransaction();
ft.add(R.id.fragContainer1, new ModelListFragment(), FRAG_MODEL_LIST);
ft.add(R.id.fragContainer2, new TrimListFragment(), FRAG_TRIM_LIST);
ft.commit();

Fragment fragment = mFragmentManager.findFragmentByTag(
            MainActivity.FRAG_MODEL_LIST);
Log.d("MY", "found fragment: " + (fragment != null));

Always returns "found fragment: false". I'm missing something really obvious here, what is it?

4

2 に答える 2

16

docでわかるように:

コミットはすぐには行われません。次回のスレッドの準備ができたときに実行されるように、メイン スレッドでの作業としてスケジュールされます。

commit() の直後にフラグメントが表示されないのはそのためです。

于 2012-08-09T13:06:36.673 に答える
2

完全にうまく機能した後、Roosmaaに 同意します。executePendingTransactionscommit()

于 2014-03-07T10:25:33.610 に答える