J'ai développé une application avec une carte Google et un tiroir de navigation. Lorsque je démarre l'application, la carte est affichée et l'utilisateur peut ouvrir le tiroir de navigation. Lorsque l'utilisateur clique sur le premier élément dans le tiroir de navigation, la carte devrait apparaître, au cas où il passerait à un autre fragment avant. Cependant, quand je l'appelle le fragment de carte, mon application se bloque avec le code d'erreur suivant: java.lang.IllegalStateException: Can't change container ID of fragment SupportMapFragment{36a7826b #0 id=0x7f0e007a}: was 2131624058 now 2131624057
Impossible de modifier l'ID conteneur du fragment SupportMapFragment
Ce que je fais dans le tiroir de navigation onItemClick
pour montrer la carte est:
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, supportMapFragment)
.addToBackStack(null)
.commit();
Il fonctionne très bien pour autres fragments mais pas pour le fragment de la carte. Le fragment de carte est codée en dur xml pour le montrer dès le début et instancié dans les méthodes onCreate comme suit: supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
Tous mes autres fragments sont instanciés en appelant new MyFragment();
et ils mesure Fragment
. Tous les conseils et astuces sur comment réparer le crash et montrer la carte sont très appréciés.
Génial! Cela a résolu le problème tout de suite. Je montre simplement le fragment de paramètres, puis cache le fragment de la carte. Si je veux montrer la carte, je montre simplement le fragment de carte et cache le fragment de paramètres. Cela fonctionne très bien. Merci beaucoup! – jfmg