Das Android-System löst eine Konfigurationsänderung aus, wenn eine Tastatur an ein Gerät angeschlossen oder von einem Gerät getrennt wird. Damit Nutzer auf Geräten mit großen Bildschirmen und abnehmbaren Tastaturen eine optimale Nutzerfreundlichkeit haben und ihre Produktivität maximieren können, muss Ihre App Änderungen an der Tastaturkonfiguration effektiv verarbeiten.
Ergebnisse
Ihre App reagiert auf das Anbringen oder Entfernen einer externen Tastatur, ohne die laufende Aktivität neu zu erstellen.
Verhindern, dass Aktivitäten bei Tastaturänderung neu erstellt werden
Damit Ihre Aktivität nicht neu erstellt wird, wenn eine abnehmbare Tastatur angebracht oder entfernt wird, fügen Sie dem configChanges
-Attribut Ihres App-Manifests tastaturbezogene Werte hinzu und fügen Sie der Ansichtshierarchie der Aktivität eine Ansicht hinzu, damit Ihre App auf Konfigurationsänderungen reagieren kann.
1. configChanges
-Attribut deklarieren
Aktualisieren Sie das <activity>
-Element im App-Manifest, indem Sie die keyboard|keyboardHidden
-Werte der Liste der bereits verwalteten Konfigurationsänderungen hinzufügen:
<activity
...
android:configChanges="...|keyboard|keyboardHidden">
2. Leere Ansicht zur Ansichtshierarchie hinzufügen
Deklarieren Sie eine neue Ansicht und fügen Sie den Handler-Code in die onConfigurationChanged()
-Methode der Ansicht ein:
Kotlin
val v = object : View(this) { override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) // Handler code here. } }
Java
View v = new View(this) { @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Handler code here. } };
Wichtige Fakten
android:configChanges
: Attribute des<activity>
-Elements des App-Manifests. Informiert das System über Konfigurationsänderungen, die von der App verwaltet werden.View#onConfigurationChanged()
: Methode, die auf die Weitergabe einer neuen App-Konfiguration reagiert.
Sammlungen, die diesen Leitfaden enthalten
Dieser Leitfaden ist Teil der folgenden Kurzanleitungen, die umfassendere Ziele der Android-Entwicklung abdecken:
