2012-08-09 21 views
13

私はサポートパッケージ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)); 

常に「found fragment:false」を返します。私はここで本当に明白な何かを見逃しています、それは何ですか?

答えて

15

あなたがdocで見ることができるように:ザ・はすぐに発生しませんコミット

。次のスレッドの準備ができたら、メインスレッドの作業 としてスケジュールされます。

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

+14

さらに、トランザクションを適用する必要がある場合は、[executePendingTransactions](http://developer.android.com/reference/android/app/FragmentManager.html#executePendingTransactions())を使用してください。 –

関連する問題