J'ai une activité. Dans cette activité, plusieurs fragments sont là. Les fragments sont en séquence à ajouter, A -> B -> C -> D -> B -> C -> D
MAINTENANT, lorsque j'accepte l'action de l'action que la séquence est, D
Mais je dois réaliser une pile de retrait comme celle-ci, D
Quel est le moyen approprié d'empêcher le même fragment dans la poitrine de l'arrière-plan? P>
Voici mon code pour ajouter des fragments, P>
if (supportFragmentManager.backStackEntryCount > 0) { supportFragmentManager.popBackStackImmediate() }
3 Réponses :
Lors de la création du fragment Définissez une balise pour elle, vous pouvez ensuite le trouver via le gestionnaire de fragments et remplacer / créer une nouvelle en conséquence
Vous pouvez utiliser rejeter () comme si vous allez un à B, B à C et C à D lorsque vous appuyez sur le dos et rejetez le fragment Son retiré de la file d'attente comme celle de la D à C et C à B et B. à un sa fait de votre empilement et de votre essai pour gérer p>
Je ne sais pas si c'est parfait, mais une fois que j'avais fait quelque chose comme ça. J'avais une pile de types d'entiers (appelons-le Suivant, vous ne créez qu'une seule instance par fragment (donc dans mon exemple, dites F1, F2, F3 , F4 n'a chacun que une seule instance) et vous les garderiez dans l'arrière-plan dans l'état invisible: p> vous le feriez pour tous vos fragments. P> Ensuite, vous avez besoin d'une variable de fragment (disons, Stackoffragmenttracker code>). Alors supposons que vous ayez des fragments F1, F2, F3, F4 et vous avez fait F1-> F3-> F4-> F2. Ensuite,
StackoFFRAGMENTTracker code> aurait du contenu comme celui-ci: 1-> 3-> 4-> 2.
fragment actif code>), pointez-le à votre premier fragment (c'est-à-dire où vous souhaitez aller pour la 1ère heure) et le rendre visible. P>
void insideBackPress(){
stackOfFragmentTracker.pop();
int top = stackOfFragmentTracker.top();
if(top==1){
hideActiveFragment();
showActiveFragment(f1);
}else if(top==2){
hideActiveFragment();
showActiveFragment(f2);
} // ... ... ...
}
Est-ce que cela répond à votre question? Comment garder une seule instance d'un fragment, lors de la commutation avec NavigationDrawer?
Oui merci. Ça va marcher bien @Prakashreddy