La sortie de l'app lorsque vous appuyez sur les bouton de Retour à l'activité avec de multiples fragments de Navigation Tiroir
Je travaille sur une application qui a besoin de la Navigation d'un Tiroir. Cette application a 1 MainActivity et environ 10 fragments sur elle. Quand je clique sur le Tiroir de Navigation icône dans MainActivity il va montrer le 10 fragments si je peux les sélectionner chacun d'eux.
- Je choisir fragment A, puis B, puis C...à F, par exemple. Quand je suis dans le fragment F et appuyez sur le bouton de Retour, il ramène-moi à la fragment E, puis de nouveau il va me prendre pour fragment D...
Mon problème est quand je suis de retour pour Un fragment (à partir du fragment B, bien sûr) et appuyez sur la touche Retour une fois de plus, il me prendre un écran blanc vide (je pense que c'est l'activité principale de mise en page). Et appuyez sur la touche de Retour une fois de plus, l'application va se fermer.
Ce que je veux, c'est quand je suis de retour pour Un fragment (dernier fragment) et frapper en Retour, l'application va se fermer immédiatement, pas l'écran blanc vide plus
J'ai recherche sur soi et à 1 question similaire, mais pas encore de réponse, donc je dois faire une autre question
Comment puis-je faire cela?
Merci beaucoup
- dans oncreate() la méthode de votre mainActivity , vous devez ajouter Un fragMent d'éviter écran blanc.
FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE)
à partir de ici @MohammadKhatri qui n'arrive pas à lui sur le chargement.- Oui ça peut aider, mais je pense que l'ajout d'Un fragment de chargement permettra de résoudre le problème sans ajouter à la backstack. @piavgh pouvez-vous mettre un morceau de code ?
Vous devez vous connecter pour publier un commentaire.
Je suppose que je suis l'un avec l'autre question sans réponse, j'ai donc envie de vous montrer ma solution de contournement:
Je vérifie si il y a un enfant dans mon FrameLayout. Si il y en a un, je vais aller un fragment de retour. Et vérifier de nouveau. Parce que je ne sais seulement l'whitescreen pour sûr, j'ai besoin de vérifier après pour 0 childs gauche. Si il existe encore un autre fragment, il n'y a rien à faire de plus, mais si childs == 0, vous voulez vous demander de quitter l'activité.
Alternativement, vous pouvez supprimer l'AlertDialog et fermer l'application si vous atteignez ce dernier fragment.
juste de quitter l'application à la dernière seconde de l'écran
Supprimer addToBackStack() de votre Fragment A.
Espérons que cela aide.
Je viens de réparer mon problème semblable. J'ai adapté Ali Azhar solution. Depuis que j'ai un écran de démarrage de l'activité, je ne voulais pas mettre fin à l'application, sinon quand j'essaie de lancer l'application (en appuyant sur les applications actives sur le bouton du téléphone et de la sélection de l'app), l'application serait coincé dans l'écran de démarrage sans procéder à mon activité principale. Ainsi, au lieu de
J'ai utilisé ceci:
pour afficher l'écran d'accueil. Je n'ai pas besoin de confirmation de sortie par l'utilisateur, alors j'ai enlevé la boîte de dialogue code. Moi aussi, je voulais régler mes replaceFragment(targetFragment, fragmentNameInBackStack) méthode pour éviter d'ajouter le fragment de la backstack si c'est le premier fragment, mais il s'est avéré qu'il n'est pas nécessaire de le faire parce que nous faisons le gestionnaire de pop de la backstack si l'on plus qu'un fragment de la backstack, donc si il y a un seul fragment, c'est très bien, nous quitter. C'est bien parce que je voulais conserver mon dos comportement de navigation entre les différents écrans/des fragments. Voici donc le code:
C'est moyen Facile pour quitter votre application juste collez code ci-dessous
Utiliser cette.. solution Facile, mais fonctionne parfaitement pour moi. Ce bouton permet de fermer l'application après avoir frappé le dernier fragment.
Dans onBack méthode de contrôle n'des fragments disponibles dans le fragment de manager... Si son de son 1, puis fermez l'application à l'aide de déplacer taskback méthode
Je suppose que vous pouvez éviter le retour appuyez sur la touche ou la finition de l'activité sur la touche retour enfoncée.En général, si vous utilisez la Navigation Tiroir que ce ne serait pas le problème, mais vous pouvez essayer.
ou vous pouvez aller pour la Navigation Tiroir
http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/
C'est ce qui a fonctionné pour moi.
Si elle est appelée à partir de MainActivity
Si elle est appelée à partir de fragment
Très tardive réponse. Mais j'espère au moins aider cette réponse quiconque.
Avec l'aide du code suivant je mettre en œuvre le double back appuyez sur exit (Il donner Toast "s'il vous Plaît cliquez sur retour pour quitter" s'appuyer sur une fois de plus seule application se ferme.)
getBackStackEntryCount() - donner le nombre actuel de votre pile de retour fragments.
si cette valeur==0 pas de fragments disponible dans la pile de retour. afin d'exécuter le double retour appuyez sur le code de sortie.
d'autre de permettre à la backpress action à l'aide d' super.onBackPressed();
À l'échelle mondiale déclarer ces variables
Ce a travaillé pour moi (Sortie double cliquez sur pour quitter le Fragment)