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