Sobes.tech
Middle

Ist es möglich, die Aktivität so zu gestalten, dass sie beim Drehen des Bildschirms nicht neu erstellt wird?

sobes.tech KI

Antwort von AI

Ja, das ist möglich. Es gibt zwei Hauptmethoden.

  1. Deklarieren Sie configChanges im Manifest: In AndroidManifest.xml, fügen Sie für <activity> das Attribut android:configChanges="orientation|screenSize" hinzu.

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation|screenSize" />
    

    In diesem Fall wird die Aktivität nicht neu erstellt, sondern die Methode onConfigurationChanged() aufgerufen, die überschrieben werden muss, um die Änderungen der Konfiguration zu behandeln.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Änderungen behandeln, z.B.: 
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Wechsel in Querformat
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Wechsel in Hochformat
        // }
    }
    
  2. Bildschirmorientierung fixieren: Es ist möglich, eine feste Orientierung für die Aktivität festzulegen, indem das Attribut android:screenOrientation im Manifest hinzugefügt wird.

    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait" />
    

    oder

    <activity  
        android:name=".MainActivity"  
        android:screenOrientation="landscape" />
    

    In diesem Fall ändert sich die Orientierung der Aktivität nicht, unabhängig von der Drehung des Geräts, und die Aktivität wird nicht neu erstellt.