2013-08-05 5 views
3

J'ai une application avec une seule activité qui utilise un tiroir de menu pour la navigation. Chaque fois que l'on clique sur un élément du tiroir de menu, je remplace le fragment par un nouveau et l'ajoute au backstack. Dites que j'ai 4 éléments de menu, A B C D E, avec leurs fragments correspondants. Si l'utilisateur ouvre A, il finit dans le backstack, si l'utilisateur clique ensuite sur B puis sur A, le backstack ressemble à ceci: A -> B -> A, et le fragment A est visible.Backstack Android avec menu tiroir

Lorsque l'utilisateur navigue maintenant à l'aide du bouton Précédent, le premier fragment B s'affiche. Si l'utilisateur retourne à nouveau, il verra à nouveau le fragment A (qu'il vient de voir avant de voir B). Dans un backstack d'activité, l'utilisateur irait de B à l'extérieur de l'application et non plus à A, car c'est de là qu'il vient. Comment puis-je supprimer toutes les entrées backstack existantes d'un fragment dans le backstack quand il est ajouté? Je veux seulement avoir une entrée maximum de chaque fragment dans le backstack att al temps.

N'hésitez pas à demander si vous ne comprenez pas ce que je veux dire.

+1

bonjour, avez-vous le découvrir? Je suis confronté au même problème maintenant: ( –

+0

Je viens de finir par tout faire manuellement, en gardant la trace de la pile moi-même à tout moment. – AlexanderNajafi

Répondre

0

Exemple de code: -

 Fragment newFragment; 
     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
     newFragment = new MyFragment(); 
     transaction.replace(R.id.content_frame, newFragment); 
     transaction.addToBackStack(null); 
     transaction.commit(); 

Si vous avez mentionné la ligne suivante dans votre code puis retirez ceci: -

  transaction.addToBackStack(null); 
Questions connexes