Podążyłem za różnymi pytaniami i odpowiedziami tutaj, aby skonfigurować moją aktywność Androida, aby nadpisać w celu wykonania logiki po otwarciu i zamknięciu miękkiej klawiatury. Oto odpowiednie fragmenty z mojego kodu. Ja gotuje je w dół do najprostszej scenariusz:onConfigurationChanged() nie wystrzeliwuje na klawiaturęUkryte
AndroidManifest.xml
...
<activity
android:name=".SearchActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation"
/>
...
SearchActivity.java
...
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Toast.makeText(this, "onConfigurationChanged()", Toast.LENGTH_SHORT).show();
}
...
Powyższy kod wyświetli Toast przy zmianie orientacji , ale nie robi nic, gdy miękka klawiatura otwiera się lub zamyka. Przetestowałem otwieranie miękkiej klawiatury poprzez ogniskowanie EditText i ręczne otwieranie za pomocą długiego naciśnięcia przycisku menu. Nie wywołuj połączenia .
W związku z tym wydaje się, że kod działa, ponieważ zmienia się orientacja, ale nie dostaję nic dla miękkiej klawiatury. Jakieś pomysły? Jeśli odpowiedź brzmi "onConfigurationChanged() nie przechwytuje zdarzeń miękkiej klawiatury", jakie jest odpowiednie rozwiązanie do wykrywania i obsługi tego zdarzenia?
W przypadku, gdy jest to istotne, testuję na Droidie X z Gingerbread.
Mam podobny problem, czy w końcu to zrobiłeś? – Jacky