Ho il seguente problema:Rimuovere Metodo da FragmentTransaction non rimuove frammento da Container
La mia applicazione deve eseguire la navigazione su una tavoletta come segue:
+----+-------+ +----+-------+ +----+-------+ +----+-------+
| | | | | | | | | | | |
| 1 | 2 | -> | 2 | 3 | -> | 3 | 4 | -> | 4 | ... |
| | | | | | | | | | | |
+----+-------+ +----+-------+ +----+-------+ +----+-------+
Ho provato a fare questo navigazione mediante FRAMMENTI, poiché la navigazione è dinamica e non so quanti livelli avrà questa navigazione.
Usando i frammenti API, ho creato la seguente struttura per assistere nei test, chiamando lo stesso frammento più volte:
Se il pannello di sinistra è vuota, inserire il frammento di esso. Se il riquadro sinistro non è vuoto e il riquadro destro è vuoto, inserire il frammento nel riquadro destro. Se i due pannelli non sono vuoti, rimuovere il frammento del pannello destro e sostituire il pannello sinistro e per esso. Quindi inserisci il nuovo frammento a destra.
Il problema è che ho trovato l'errore "Impossibile modificare l'ID del frammento del contenitore" quando provo a eseguire il metodo di sostituzione.
Se si esamina la documentazione per il metodo di rimozione della transazione, sono disponibili le seguenti informazioni: "Rimuovere un frammento esistente. Se è stato aggiunto a un contenitore, anche la relativa vista viene rimossa dal contenitore."
Ma guardando nel frammento del codice API, c'è ancora una variabile che contiene il riferimento al contenitore precedente: mFragmentId.
Qualcuno conosce un modo per eseguire questa navigazione o ripristinare questa variabile?
L'ho provato e funziona, ma ho trovato un'altra soluzione utilizzando un solo LinearLayout e mi sembra migliore. Grazie. –