Zarządzanie zmianami konfiguracji klawiatury odłączanej

System Android wywołuje zmianę konfiguracji za każdym razem, gdy klawiatura jest podłączana do urządzenia lub od niego odłączana. Aby zapewnić użytkownikom komfort i maksymalną produktywność na urządzeniach z dużym ekranem i odłączaną klawiaturą, aplikacja musi skutecznie zarządzać zmianami konfiguracji klawiatury.

Wyniki

Aplikacja reaguje na podłączenie lub odłączenie klawiatury zewnętrznej bez ponownego tworzenia uruchomionej aktywności.

Zapobieganie ponownemu tworzeniu aktywności po zmianie klawiatury

Aby zapobiec ponownemu tworzeniu aktywności po podłączeniu lub odłączeniu odłączanej klawiatury, dodaj wartości związane z klawiaturą do atrybutu configChanges w pliku manifestu aplikacji i dodaj widok do hierarchii widoków aktywności, aby aplikacja mogła nasłuchiwać zmian konfiguracji.

1. Zadeklaruj atrybut configChanges

Zaktualizuj element <activity> w manifeście aplikacji, dodając wartości keyboard|keyboardHidden do listy zmian już zarządzanej konfiguracji:

<activity
    ...
    android:configChanges="...|keyboard|keyboardHidden">

2. Dodawanie pustego widoku do hierarchii widoków

Zadeklaruj nowy widok i dodaj kod obsługi w metodzie onConfigurationChanged() widoku:

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.
    }
};

Najważniejsze punkty

  • android:configChanges: atrybut elementu <activity> w manifeście aplikacji. Informuje system o zmianach konfiguracji, którymi zarządza aplikacja.
  • View#onConfigurationChanged() : metoda, która reaguje na propagację nowej konfiguracji aplikacji.

Kolekcje, które zawierają ten przewodnik

Ten przewodnik jest częścią wyselekcjonowanych kolekcji przewodników, które obejmują szersze cele związane z programowaniem na Androida:

Włącz w aplikacji obsługę zoptymalizowanego środowiska użytkownika na tabletach, urządzeniach składanych i urządzeniach z ChromeOS.

Masz pytania lub chcesz podzielić się opinią?

Odwiedź stronę z najczęstszymi pytaniami, aby zapoznać się z przewodnikami, lub skontaktuj się z nami i podziel się swoimi przemyśleniami.