2012-08-09 17 views
13

Używam pakietu pomocy v4.Nie można odnaleźć fragmentu przy pomocy tagu

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)); 

Zawsze zwraca "znaleziony fragment: fałsz". Brakuje tu czegoś naprawdę oczywistego, co to jest?

Odpowiedz

15

Jak widać w doc:

commit nie dzieje od razu; zostanie zaplanowany jako praca na wątku głównym, który zostanie zrobiony następnym razem, gdy wątek będzie gotowy.

dlatego nie widać fragmentu zaraz po zatwierdzeniu().

+14

A jeśli chcesz, aby transakcja była stosowana, użyj [executePendingTransactions] (http://developer.android.com/reference/android/app/FragmentManager.html#executePendingTransactions()) –

Powiązane problemy