2015-05-16 3 views
0

Этот код из моего Fragment1 (что создает еще один фрагмент)Невозможно получить ссылку вложенного фрагмента

currentState = currentStateFactory.factory(); 
Log.e("","new state = "+currentState); 
//In the log I can see currentState is not null 
FragmentTransaction ft = getChildFragmentManager().beginTransaction(); 
if (ft != null) { 
    Log.e("","replacing"); 
    ft.replace(R.id.inner_container, currentState, CURRENT_STATE).commit(); 
} 
currentState = (InitableFragment) getChildFragmentManager().findFragmentByTag(CURRENT_STATE); 
Log.e("", "currentState != null check... "+currentState); 
//In the log I can see currentState is null 
if (currentState != null) { 
    Log.e("", "currentState initng"); 
    currentState.init(); 
} 

почему findFragmentByTag возвращает нуль?

ответ

0

По ссылке Android разработчиков:

Планирует совершить такую ​​сделку. Конец не происходит немедленно; это будет запланировано, поскольку работа над основным потоком будет выполнена в следующий раз, когда поток будет готов.

http://developer.android.com/reference/android/app/FragmentTransaction.html#commit()

Может быть, вы можете переместить #init() вызова в осколке onAttach()?