Comment revenir au fragment précédent de l'activité?
J'ai une application avec nav tiroir, qui est de commutation de fragments. À partir de l'intérieur de l'un de ces fragments, je suis de l'appel d'une nouvelle activité. Lorsque je clique sur le dos de cette activité (dans la barre d'outils), je veux revenir à la précédente fragment sélectionné, mais au lieu de cela, il me met de nouveau à premier fragment. J'ajoute mon fragment de pile de retour donc cela ne devrait pas être un problème.
Voici ce que j'ai déjà essayé:
J'ai remplacé le onBackPressed méthode dans mon 2ème activité comme ceci:
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() == 0) {
this.finish();
} else {
getFragmentManager().popBackStack();
}
}
Il n'est pas de travail. J'ai aussi sauvé de l'indice de courant fragment à l'intérieur de la méthode onsaveinstancestate, et de la récupérer, mais même résultat. J'ai aussi essayé avec toujours mettre actuelles fragment à l'intérieur de variable et d'essayer de reshow, mais encore, il ne fonctionne pas. Autre chose que je pourrais essayer?
Fait amusant: si j'appuie sur le dos intérieur du bas du panneau, il ne remonte en fait au fragment précédent.
EDIT: Voici mon code pour le faire:
private void replaceFragment(Fragment fragment)
{
if (fragment != null)
{
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction()
.replace(R.id.main_content, fragment)
.addToBackStack(null)
.commit();
}
}
- Je ajouter de premier fragment seulement, si savedInstanceState est nulle, comme suit:
if (savedInstanceState == null) {
//first time
mTitle = getResources().getString(R.string.home);
replaceFragment(HomeFragment.newInstance());
}
Et oui, tout cela est fait à l'intérieur onCreate() de la méthode.
source d'informationauteur Orochi | 2015-07-18
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et suis fixé. La seule chose que vous devez faire est de
remplacer la "méthode onOptionsItemSelected" dans l'activité:
android.R.id.la maison est votre premier fragment dans le menu.
Essayer
Il a travaillé pour moi.
Ce que j'ai tendance à faire est de cette
Cette façon dont il gère le fragment de choses sur son propre sein, mais quand il n'y a pas de fragments de gauche pour revenir en arrière, puis il termine l'activité.
EDIT: la navigation peut recréer votre activité précédente, même si elle existe déjà. Pour éviter que cela se produise, redéfinir le
Up
de navigation de l'événement dansonOptionsItemSelected
comme suit:Désolé, je n'ai pas assez de réputation pour laisser un commentaire. Donc, je suppose. Une fois, j'ai eu le même problème.
Sonne comme un problème lié à l'activité du cycle de vie (http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle). Assurez-vous d'ajouter votre premier fragment qu'une seule fois, parce que votre activité du fragment manager est capable du cycle de vie.
Ainsi, la déclaration ajoute que le premier fragment de votre fragment manager doit être entouré par
if (savedInstanceState == null) { ... }
.Lorsque vous appelez une activité des autres activités du fragment, puis l'activité passée de l'état de l'instance qui est la vocation de l'activité qui avait fragment de l'état de l'instance sera sauvegardé dans la pile...de sorte que tous u besoin de faire est de terminer les appelés de l'activité et u ont le fragment à partir de laquelle vous avez appelé votre deuxième activité.
Je vois que les gens sont encore en train d'essayer de m'aider. Cette réponse m'a aidé à résoudre mon problème: Android de Navigation en Haut de l'Activité de Fragment
Remplacer
onOptionsItemSelected
méthode de l'activité comme suit,Lorsque vous appelez une nouvelle Activité à partir de Fragment vous devriez écrire :
Cela Fonctionne pour moi.