Il sistema Android attiva una modifica della configurazione ogni volta che una tastiera viene collegata o scollegata da un dispositivo. Per offrire un'esperienza utente fluida e massimizzare la produttività degli utenti sui dispositivi con schermi di grandi dimensioni e tastiere rimovibili, l'app deve gestire in modo efficace le modifiche della configurazione della tastiera.
Risultati
L'app risponde al collegamento o allo scollegamento di una tastiera esterna senza ricreare l'attività in esecuzione.
Compatibilità con le versioni
Imposta minSDK del progetto sul livello API 8 per questa implementazione (vedi
View#onConfigurationChanged()).
Dipendenze
Nessuno.
Impedire la ricreazione dell'attività in caso di modifica della tastiera
Per impedire la ricreazione dell'Activity quando una tastiera rimovibile viene collegata o scollegata, aggiungi i valori relativi alla tastiera all'attributo configChanges del manifest dell'app e aggiungi una visualizzazione alla gerarchia di oggetti View dell'Activity in modo che l'app possa rimanere in ascolto delle modifiche della configurazione.
1. Dichiara l'attributo configChanges
Aggiorna l'elemento <activity> nel manifest dell'app aggiungendo i
keyboard|keyboardHidden valori all'elenco delle modifiche della configurazione
gestite:
<activity
...
android:configChanges="...|keyboard|keyboardHidden">
2. Aggiungi una visualizzazione vuota alla gerarchia di oggetti View
Dichiara una nuova visualizzazione e aggiungi il codice del gestore all'interno del metodo onConfigurationChanged() della visualizzazione:
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.
}
};
Punti chiave
android:configChanges: attributo dell'elemento<activity>del manifest dell'app. Informa il sistema delle modifiche della configurazione gestite dall'app.View#onConfigurationChanged(): metodo che reagisce alla propagazione di una nuova configurazione dell'app.
Raccolte che contengono questa guida
Questa guida fa parte di queste raccolte di guide rapide curate che riguardano obiettivi di sviluppo Android più ampi: