У меня была такая же проблема, и я смог ее решить, вручную удалив MapFragment
в методе onDestroy()
класса Fragment
. Вот код, который работает и ссылается на MapFragment
по ID в XML:
@Override
public void onDestroyView() {
super.onDestroyView();
MapFragment f = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
if (f != null)
getFragmentManager().beginTransaction().remove(f).commit();
}
Если вы не удалите MapFragment
вручную, он будет зависать, чтобы он не стоил много ресурсов для воссоздания / отображения карты снова. Кажется, что сохранение базового MapView
отлично подходит для переключения между вкладками, но при использовании в фрагментах это поведение вызывает создание дубликата MapView
для каждого нового MapFragment
с тем же идентификатором. Решение состоит в том, чтобы вручную удалить MapFragment
и таким образом воссоздать базовую карту каждый раз, когда фрагмент завышен.
Я также отметил это в другом ответе [ 1 ].
Идти как
getRepositoryManager().loadAllPcbDetails()
.flatMapIterable {
listPcbDetail-> listPcbDetail
// listPcbDetail is ArrayList<PcbDetails>
// Converts your list of ids into an Observable
// which emits every item in the list
}
.flatMap { pcbDetail ->
// pcbDetail is PcbDetails
getRepositoryManager().loadAllPcbs(pcbDetail.pcbIdList)
}.subscribe { listPcb ->
// listPcb is ArrayList<Pcb>
}