Supposons que j'ai une Activité qui contient deux FrameLayouts (appelons-les FrameA et FrameB) qui, à son tour , chaque contenir un Fragment (appelons-les FragmentA1 et FragmentB1 respectivement). Maintenant, j'ai commis une série d'fragment de transactions à l'aide de code semblable au suivant...
getFragmentManager()
.beginTransaction()
.replace(frameId, fragment)
.addToBackStack(null)
.commit();
... tel que je le remplacer FragmentA1 dans FrameA avec FragmentA2, puis-je remplacer FragmentB1 dans FrameB avec FragmentB2, puis-je remplacer FragmentA2 dans FrameA avec FragmentA3, puis-je remplacer FragmentB2 dans Image2 avec FragmentB3, et l'état final ressemble à l'image ci-dessus (où seulement FragmentA3 et FragmentB3 sont visibles).
Si j'ai bien compris comment la pile de retour des œuvres, en appuyant sur "retour" sera interleave éclatement de l'Fragments entre FrameA et FrameB (reflétant la façon dont j'ai ajouté de la mer).
Personne ne sait si il est possible de pop de la dernière transaction sur FrameA ou FrameB de manière sélective? (c'est à dire si j'ai appuyé sur "Pop FrameA" puis FrameA serait la transition de retour de FragmentA3 à FragmentA2 et, au lieu de cela, si j'ai appuyé sur "Pop FrameB" puis FrameB serait la transition de retour de FragmentB3 à FragmentB2)
Complément: je sais que je peux obtenir le Fragment dernier ajout à un FrameLayout à l'aide de l'
FragmentManager.findFragmentById(int framelayoutId)
méthode, mais en l'appelantFragmentTransaction.remove(fragment).commit()
seulement élimine le Fragment de la Vue et de ne pas la transition de la Vue arrière du Fragment qu'il a précédemment affiché.