In Aktivität Lebenszyklus, immer Android zurück Taste befasst sich mit FragmentManager Transaktionen, wenn wir FragmentActivity oder AppCompatActivity verwendet.
Um den Backstack zu behandeln, müssen wir nicht die Backstack-Anzahl oder das Tag behandeln, aber wir sollten den Fokus beim Hinzufügen oder Ersetzen eines Fragments behalten. Bitte finden Sie die folgenden Schnipsel, um die zurück-Taste Fälle zu behandeln,
public void replaceFragment(Fragment fragment) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (!(fragment instanceof HomeFragment)) {
transaction.addToBackStack(null);
}
transaction.replace(R.id.activity_menu_fragment_container, fragment).commit();
}
Hier füge ich keinen Backstack für mein Home-Fragment hinzu, weil es die Startseite meiner Anwendung ist. Wenn addToBackStack zu HomeFragment dann app wird warten, um alle Frament in acitivity zu entfernen, dann werden wir leeren Bildschirm erhalten, so dass ich die folgende Bedingung halten,
if (!(fragment instanceof HomeFragment)) {
transaction.addToBackStack(null);
}
Jetzt können Sie das zuvor hinzugefügte Fragment auf der Aktivität sehen und die App wird beendet, wenn sie das HomeFragment erreicht. Sie können auch die folgenden Schnipsel betrachten.
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
closeDrawer();
} else {
super.onBackPressed();
}
}