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 () и посмотреть, получаете ли вы ожидаемый фрагмент обратно. Если теперь вы можете добавить и зафиксировать.