EditText in ListView mit windowSoftInputMode adjustPan

8

Ich habe eine ListView mit einer EditText in jeder Zeile. Ich habe windowSoftInputMode auf adjustPan im Manifest für diese Aktivität gesetzt, also wenn ich auf EditText tippe, schwenkt das Layout so, dass es über der Tastatur sichtbar ist.

Das funktioniert, wenn ich zum ersten Mal auf EditText klicke. Wenn ich jedoch die Zurück-Taste drücke, um die Tastatur zu schließen, tippen Sie erneut auf den gleichen EditText (ohne etwas anderes zu tippen, so dass der Cursor in der ersten EditText bleibt), die Tastatur springt zurück, aber das Layout schwenkt nicht. Dies hat zur Folge, dass das EditText hinter der Tastatur verborgen ist.

Hat jemand dieses Verhalten erfahren / weiß, wie man es löst?

Danke

    
Matt Colliss 10.02.2011, 14:09
quelle

1 Antwort

8

Immer noch nicht sicher, warum das passiert, aber ich habe eine Lösung.

Ich habe EditText unterklassifiziert und die Methode onKeyPreIme(int keyCode, KeyEvent event) wie folgt überschrieben:

%Vor%

Wenn nun die Zurück-Taste gedrückt wird, gibt der EditText den Fokus auf. Ein erneutes Antippen hat das gewünschte Verhalten.

    
Matt Colliss 10.02.2011, 15:19
quelle