Vermeidung von Neustart der Aktivität, wenn sich die Orientierung ändert

Ich bin neu in der Android-Entwicklung. Ich habe getrennte Bildschirme für Hoch- und Querformat. Wenn ich meine Orientierung ändere, wird der entsprechende Bildschirm geladen und die Aktivität wird neu gestartet. Jetzt möchte ich nicht, dass meine Aktivität neu gestartet wird, wenn ich die Orientierung ändere, sondern den entsprechenden Bildschirm (axml) laden soll.

Ich habe versucht

  • Android Spiel, Leinwand oder opengl?
  • Android NDK: Java.lang.UnsatisfiedLinkError: dlopen failed: kann nicht finden Symbol "Signal" referenziert von "libffmpeg.so"
  • GetLoaderManager in ListActivity
  • Wie viele Arten von Kontext in Android und was ist besser zu bedienen
  • Wrap_content Höhe, aber begrenzt auf die Hälfte der Elternteil
  • Adb-Touchscreen-Swipe schlägt in einem Anruf
  • [Aktivität (Label = "MyActivity", ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation)]

    Die obige Zeile stoppt die Aktivität, die neu gestartet wird, aber es lädt den gleichen Bildschirm (axml). Bitte vorschlagen . Vielen Dank

  • Android-Entwicklung: "Thread-Exit mit ungewöhnlicher Ausnahme"
  • Verschachtelte Fragmente mit Unterstützung Bibliothek v4 Revision 11
  • Ändern der Symbolleiste Hintergrundfarbe programmgesteuert nicht ändern Toolbar Titel Hintergrundfarbe
  • Wie kann ich einen Emulator mit API 25 mit einer Build-Matrix auf Travis CI einrichten?
  • Holen Sie sich das letzte Fragment im Rücken Stapel
  • Android - Default User Agent für URLConnection?
  • 2 Solutions collect form web for “Vermeidung von Neustart der Aktivität, wenn sich die Orientierung ändert”

    Schreiben Sie diesen Code in Ihre Aktivität

    @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { setContentView(R.layout.landscapeView); } else { setContentView(R.layout.portraitView); } } 

    Und füge diese Zeile auch in deiner Manifest-Datei hinzu

     android:configChanges="orientation|keyboardHidden|screenSize" 

    So wird das mit beiden Sachen umgehen, es wird Ihre Aktivität nicht neu starten und das Layout nach Ihren Orientierungsänderungen laden.

    Da du das OS spezifiziert hast, das du mit Orientierung umgehen möchtest, musst du selbst irgendwelche Änderungen an dem Layout selbst verarbeiten, wie folgt:

     public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { setContentView(R.layout.portrait); //do other initialization } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { setContentView(R.layout.landscape); //do other initialization } } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.