Application de fermeture du bouton Précédent même avec FragmentTransaction.addToBackStack ()
Aucune des autres questions que j'ai lu sur stackoverflow ont été en mesure d'aider avec mon problème. Aussi loin que je peux dire, je fais tout correctement.
J'ai un maître/détail des flux avec les fragments.
Lors de la création de l'activité principale, le maître fragment est chargé avec le code suivant:
Fragment frag;
frag = new MainListFragment();//<-- **the master fragment**
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
transaction.replace(R.id.fragment_container, frag);
Log.d("My Debug Bitches", "stack:" + fm.getBackStackEntryCount());
transaction.commit();
Le maître fragment a une ListView
; en cliquant sur un élément de liste affiche les détails fragment de la sorte:
@Override
public void onListItemClick(ListView listView, View view, int position, long id) {
super.onListItemClick(listView, view, position, id);
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
SubListFragment frag = new SubListFragment();//<-- **the detail fragment**
transaction.replace(R.id.fragment_container, frag);
transaction.addToBackStack(null);
transaction.commit();
fm.executePendingTransactions();
Log.d("My Debug Bitches", "stack:" + fm.getBackStackEntryCount());
}
Maintenant, selon LogCat, le BackStackEntryCount
passe de 0 à 1 après je naviguer à partir de maître fragment de détail de fragment:
Alors pourquoi est-il que, quand je clique sur le bouton de retour alors que dans les détails fragment, que l'application se ferme au lieu de retourner à la maîtrise fragment??????????
source d'informationauteur scottyseus
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter le
popBackStack()
appel à laonBackPressed()
méthode de l'activité.Ex:
@Bobbake4 la réponse est génial, mais il y a un petit problème.
Disons que j'ai trois fragments A, B et C.
A est le principal Fragment (fragment qui s'affiche lorsque je lance mon application), B et C sont des fragments je peux y accéder à partir de la navigation tiroir ou d'A.
Maintenant, lorsque j'utilise le bouton de retour à partir de B ou C, je reviens pour le fragment précédent (Un) bon, mais le titre de la précédente fragment (fragment B ou C) s'affiche désormais dans l'actionBar titre du Fragment A. je dois appuyer sur le bouton de retour de nouveau à "vraiment" complète le dos de navigation (pour afficher la vue et bon titre pour le fragment et le retour à l')
C'est comment j'ai résolu ce problème. Déclarer ces variables.
Dans le MainActivity de mon application où suis-manipulation de navigation tiroir méthodes, j'ai une méthode
displayView(position)
qui gère la commutation de mes fragments.enfin, dans mon
onBackPressed
méthode, je fais ceci: