2010-12-30 2 views
8

Ich fand this alten Beitrag, der definitiv mit meinem Problem hilft, aber ich merke, dass es nicht wirklich mein Problem zu lösen scheint. Ich habe gesammelt, dass ich android: windowSoftInputMode = "adjustPan" für meine Tätigkeit einstellen muss. Aber das Problem ist, dass es einfach nicht GENUG schwenkt.Soft Keyboard Overlapping mit EditText Feld

Das Textfeld befindet sich am unteren Rand der Ansicht, und wenn die Tastatur angezeigt wird, verschiebt sich die Ansicht leicht, aber nur ganz oben im EditText. Im Textfeld ist die automatische Vervollständigung aktiviert, und wenn die Option zur automatischen Vervollständigung angezeigt wird, wird die Ansicht etwas weiter nach unten verschoben, aber sie wird durch die Optionen zur automatischen Vervollständigung noch weiter verdeckt. Es macht das Texteingabefeld sehr schwierig zu verwenden, da Sie nichts, was Sie tippen, sehen können.

Es handelt sich um ein mehrzeiliges Eingabefeld, und wenn Text in die nächste Zeile rollt, wird die Ansicht weiter geschwenkt, sodass Sie die vorherige (n) Textzeile (n) sehen können. Aber Sie können nicht sehen, was Sie tippen, was ich für ziemlich wichtig halte.

Hat jemand irgendwelche Gedanken zur Lösung dieses Problems?

+0

Also die beste Idee, die ich hatte, ist nur die Felder darüber zu "unsichtbar" oder "weg", aber das ist definitiv keine ideale Lösung. Danke für die Hilfe von Phobos, aber unglücklicherweise ist die ganze Lösung das Feld, auf das ich mich konzentrieren möchte, verkleinert, was ich nicht machen will. –

Antwort

10

Also, ich habe gefunden, was scheint, die Ursache für das Problem zu sein. In meinem AndroidManifest.xml hatte ich

gesetzt
<uses-sdk android:minSdkVersion="3" /> 

Offenbar war an der Wurzel des Problems eine minSdkVersion unter „4“ verwendet wird. Beim Wechsel zu "4" erschien das Layout so, wie es sein sollte, und der EditText hatte seine erste Zeile über der Oberseite der Soft-Tastatur.

Danke für die Hilfe, Phobos.

+0

Wow, danke für diesen Hinweis! Ich hätte es nie ohne es gefunden. –

+0

Perfekte Lösung, genaues Problem hatte ich –

+1

Ich habe das gleiche Problem. Mein Layout hat 7 Text bearbeiten und oben auf dem Bildschirm gibt es eine Schaltfläche und unten auf dem Bildschirm gibt es eine andere Schaltfläche.Ich habe und android: windowSoftInputMode = "adjustPan" in meiner Activity in der AndroidManifest-Datei verwendet, aber wenn das Softkeyboard geöffnet wird und ich versuche, zur unteren Schaltfläche zu gehen, lässt es mich nicht sehen. Mein gesamtes Layout wird mithilfe des relativen Layouts erstellt. Was soll ich tun, um die untere Schaltfläche zu sehen, wenn ich die Softkey-Karte durch Klicken auf den zweiten Bearbeitungstext geöffnet habe (Wert auf Sekunde setzen und dann auf die untere Schaltfläche klicken wollen). –

3

Wickeln Sie Ihre Benutzeroberfläche in einen ScrollView-Container. Dies ermöglicht dem Benutzer, die gesamte Benutzeroberfläche zu sehen, wenn auch durch Scrollen. Die Benutzeroberfläche ist möglicherweise nicht groß genug, um ohne die Tastatur auf dem Bildschirm zu scrollen, aber wenn die Tastatur angezeigt wird, reduziert sie effektiv die Bildschirmgröße.

+0

Ich mag ein Missverständnis, aber meine gesamte layout.xml-Datei ist ein RelativeLayout. Wenn Sie vorschlagen, dass ich das RelativeLayout innerhalb einer ScrollView verpacken soll (d. H. ?), Habe ich versucht, das zu tun, und ich hatte keinen Erfolg. Es sieht genau so aus. Es könnten Parameter sein, die ich benutze, oder so ähnlich, aber es sieht genauso aus wie es gemacht hat. Wenn ich match_parent nicht für height/width und fillViewPort = "true" verwende, würde dies entweder einen Absturz verursachen oder dazu führen, dass das Layout falsch angezeigt wird. Alles was ich vermisse? –

+1

Nachdem Sie Ihr Layout in ScrollView eingepackt haben, deaktivieren Sie adjustPan. Immer wenn ich EditTexts in meiner Hauptbenutzeroberfläche habe, verwende ich diesen Ansatz. Ich finde, dass TableLayout am besten für mich funktioniert, wenn ich eine Art Formular-UI erstelle. Ich weiß nicht, wie dein Layout aussieht, aber sieh es dir an. Wenn RelativeLayout nicht funktioniert, sehen Sie, ob Sie es mit TableLayout tun können. – Phobos

+0

Leider ist das betreffende EditText-Feld nicht auf eine bestimmte Höhe eingestellt, daher scheint dies nicht zu funktionieren. Die Höhe wird auf "match_parent" gesetzt (um den "verbleibenden Platz" des Layouts zu füllen) und seine Größe basiert auf der relativen Größe der Ansicht oben und der Ansicht unten. Was passiert, wenn ich adjustResize anstelle von adjustPan verwende, verkleinert sich das Feld und verschwindet fast vollständig, anstatt in den sichtbaren Bereich zu scrollen. –