2016-07-27 10 views
0

Ich verwende eine Navigationsleiste mit Fragmenten, die der Google Mail-App ähneln. Aber ich habe zwei Probleme:Android: Wie aktuelles sichtbares Fragment in Navigationsschublade wie Google Mail App zu speichern?

1: Angenommen, ich wähle Element x aus der Nav-Schublade. Das entsprechende Fragment (Fragment x) wird problemlos angezeigt. Wenn ich jedoch die Ausrichtung ändere, wird die Aktivität neu erstellt und das Fragment 1 (Standardfragment) wird angezeigt, obwohl in der Navigationsleiste das Element x als aktiviert angezeigt wird.

2: Noch einmal Angenommen, ich wähle Punkt x. Auch hier wird das entsprechende Fragment (Fragment x) problemlos angezeigt. Jetzt schließe ich die App durch Drücken der Home-Taste und öffne 10 weitere Apps. Nach einiger Zeit, wenn ich meine App wieder öffne, wird die Aktivität neu erstellt und Fragment 1 (Standardfragment) wird angezeigt, obwohl in der Navigationsleiste das Element x als aktiviert angezeigt wird.

Beide Probleme sind ähnlich und erfordern wahrscheinlich die gleiche Lösung. Wie löse ich das?

Antwort

0

Im Android Manifest, fügen

android: configChanges = "keyboardHidden | Orientierung | Bildschirmgröße"

Dies wird die Aktivität von erfrischender auf solche Veränderungen, einschließlich der Fall stoppen Sie erwähnt haben, Das ist eine Orientierungsänderung.

Damit die Aktivität nach der Wiederherstellung von einer minimierten Position aus fortgesetzt wird, überschreiben Sie die Methoden onPause und onResume in der Aktivität.

@Override öffentliche void onPause() { super.onPause(); // Rufen Sie immer zuerst die Superklassenmethode auf}

@Override public void onResume() { super.onResume(); // Ist das, was Sie tun wollen}

Zum Vergleich: https://developer.android.com/training/basics/activity-lifecycle/pausing.html

+0

können Sie bitte diese weiter erläutern? Was sollte ich bei onResume tun? – RGC10