2011-01-05 3 views
8

ich mit diesem eine Aktivität haben Layouts Struktur: Linearlayout -> Scrollview -> Tablelayoutandroid: windowSoftInputMode = "adjustResize" wenn ich schon haben Scroll der Tätigkeit

Unterhalb des Tablelayout i EditText, die ich möchte bei aktiver Tastatur hochscrollen. So nach etwas zu lesen ich gemacht habe, habe ich:

android:windowSoftInputMode="adjustResize" 

zu AndroidManifest.xml, die jeweilige Tätigkeit, und fügte hinzu, die Layouts Strukturen der Aktivität einen Scrollview-Wrapper auf die activity.xml Datei, so Scroll -> Linearlayout -> Scrollview -> Tablelayout

das Problem: jetzt ist wie folgt die innere Scrollview funktioniert nicht jetzt ... ich denke, das Wickelscroll Kontrolle nimmt, wenn sie berührt ...

Wie kann ich dieses Problem lösen?

Jede Hilfe wird geschätzt. Danke.

+0

Versuchen Sie, die Situation zu vermeiden, in der sich ein Bildlauf in einem anderen Bildlauf befindet. Sie können es erfassen, aber das ist nicht notwendig. Ich habe das Problem. aber linearlayout> scrollview> tabellayout reicht für dein problem aus. Die innere Scrollansicht passt sich automatisch an die richtige Größe an. Ich würde auch empfehlen, "stateVisible" zu der inputMode -Option hinzuzufügen –

+1

Aber wenn ich nicht die gesamte Aktivität mit ScrollView umschlinge, dann wird die Aktivität nicht geändert, wenn der editierte Text geklickt hat ... Oder liege ich falsch? Ich habe es ohne es versucht, und die Aktivität scrollte nicht mit der Tastatur - die Tastatur bedeckte gerade den EditText, wieder ... – ofirbt

Antwort

10

Ich hatte das gleiche Problem, wo die virtuelle Tastatur EditTexts auf meinem Bildschirm versteckt. Ich stellte die folgende Eigenschaft für Aktivitäts-Tag in der Manifest-Datei:

android:windowSoftInputMode="stateVisible|adjustResize|adjustPan" 

Auch brauchte ich folgenden Code in der Tätigkeit der OnCreate-Funktion hinzuzufügen:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Dies löste das Problem, und es funktionierte völlig in Ordnung auf allen Auflösungsemulatoren und Samsung-Geräten. Es scheiterte jedoch auf dem Google Nexus S-Gerät, und ich sah das gleiche Problem erneut mit der virtuellen Tastatur, die die EditTexte verbarg.

+11

Das ist zumindest ein bisschen falsch. Laut [der Dokumentation für windowSoftInputMode] (http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft) können Sie nicht mehrere 'adjust' Parameter setzen (und es nicht machen Sinn jedenfalls). – Timmmm

+2

Die Dokumentation sagt nicht, dass Sie nicht mehrere Werte setzen können, nur dass das Ergebnis undefiniert ist, also ist es ein bisschen ein Hack. – fejd

+0

Nach stundenlanger Suche löste dies mein 'EditText' Input Lag Problem (bis zu 5 Sekunden Verzögerung). Vielen Dank. –