Fragment isAdded () возвращает false для уже добавленного фрагмента
у меня есть эта аккуратная функция:
private void addMapFragment(){
if(!mapFragment.isAdded()){
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.mapContainer, mapFragment);
ft.commit();
}
}
Я звоню addMapFragment()
в . Тогда я звонка от запросов WebRequest, что называет addMapMapFragment()
. The isAdded()
метод не выглядит полезным вообще, так как я получаю сбой, говоря: "фрагмент уже добавлен:MapFragment[...]
"
любой ключ?
2 ответов
FragmentTransactions
совершено асинхронно. Поэтому, вам нужно позвонить
getFragmentManager().executePendingTransactions();
до вы называете
Fragment.isAdded();
таким образом, вы можете убедиться в том, что все в актуальном состоянии.
вместо этого проверьте getSupportFragmentManager.findFragmentById () и посмотреть, получаете ли вы ожидаемый фрагмент обратно. Если теперь вы можете добавить и зафиксировать.