EditText in Listview verliert den Fokus, wenn auf Android 4.x gedrückt wird

Ich weiß, dass es viele ähnliche Fragen gibt, aber ich konnte keine der angebotenen Lösungen in einer einfachen Beispiel-App zum Funktionieren bringen.

Das Problem tritt auf, wenn dieSoftkeyboard wird zum ersten Mal gezeigt. Sobald es angezeigt wird, nur durch Drücken derText bearbeiten macht es wieder bearbeitbar.

Versuchte Folgendes:

 android:windowSoftInputMode="adjustPan|adjustResize"

Dies löst keine Probleme. Es scheint, dass diese Zeile obligatorisch ist, um die Größe der Aktivität zu ändern, nachdem das Softkeyboard angezeigt wird. Leider verursacht es auch welcheEditTexts den Fokus verlieren. Das liegt wohl an derListenansicht sich nach dem Größenänderungsprozess zu konzentrieren. Also habe ich die folgende Problemumgehung versucht:

 listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);

Dies führt immer zum erstensichtbarer EditText dass dieListView enthält, um den Fokus zu gewinnen, was unerwünscht ist. Der zweite EditText in der zweiten Zeile sollte stattdessen den Fokus erhalten, wenn gedrückt wird, was nicht geschieht. Wenn es mir schließlich gelungen ist, einen anderen als den zuerst angezeigten EditText zu fokussieren (z. B. durch Drücken von 'Weiter' auf dersoftkeyboard) erhält der erste sichtbare Fokus, nachdem die Tastatur geschlossen wurde und die ListView wieder auf die volle Größe gebracht wurde.

Ich habe verschiedene andere Dinge ausprobiert, wie das AbfangenonFocusChange() Ereignisse für die ListView, während Sie wissen, welcher EditText von seinem gedrückt wurdeTouchListener. Das erneute Anfordern des Fokus für diesen bestimmten EditText führte ebenfalls zu keinem Erfolg.

Verwendung einerScrollView anstelle einerListView wie von anderen Benutzern vorgeschlagen, ist auch für das betreffende Projekt keine Option.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage