Die Android-Soft-Tastatur blendet die Eingaben von CordovaWebView im Vollbildmodus aus

8

Ich habe ein CordovaWebView, das einige HTML-Formulare präsentiert. Wenn ich mich auf ein Eingabefeld konzentriere, taucht die Soft-Tastatur des Android auf und für bestimmte Felder, je nach ihrer Position, wird sie darüber gelegt. Im Grunde wird das Layout von CordovaWebView nicht verändert.

Was auch immer ich tue, ich kann das nicht ändern, und es wird gesagt, dass es damit zusammenhängt, dass sich CordovaWebView im Vollbildmodus befindet.

Wie kann ich das Problem lösen?

PS: ist es oder nicht, ein Fehler?

Danke euch allen!

    
José Silva 19.06.2013, 15:05
quelle

3 Antworten

5

Tatsächlich ist es ein bekannter Fehler, wie @ user2493245 sagte. Aber ich habe einen Workaround gefunden, zumindest in meinem speziellen Fall.

in WebView, einfach nach den Koordinaten für den sichtbaren Bereich der Ansicht suchen.

%Vor%

Wie Sie sehen können, sende ich diese Informationen an das WebView. Auf HTML habe ich diese zwei Methoden, um das Problem zu behandeln:

%Vor%

Im Grunde wird onKeyBoardShow das Eingabefeld fokussiert und berechnet die Anzahl der Pixel, die notwendig sind, um den Körper zu bewegen, so dass der Benutzer das Eingabefeld sehen kann. onKeyBoardHide, setzt den Körper einfach in seine ursprüngliche Position.

PS: Das funktioniert nur, wenn das Ansichtsfenster auf devicedpi zielt, da wir die Art und Weise ändern müssen, in der wir die Unterschiede bezüglich der dpi des Geräts erhalten.

PS2: Die erste Menge Code ist nicht meine, ich habe nur bearbeitet, um meine Bedürfnisse zu erfüllen. Ich habe das auf einer SO-Frage gesehen, aber unglücklicherweise kann ich es jetzt nicht finden. Wenn ich es finde, werde ich den Link hier posten.

    
José Silva 21.06.2013, 12:15
quelle
1

Ich habe das gleiche Problem und ich habe herausgefunden, dass es ein bekannter Fehler ist.

Eine Umgehungsmöglichkeit könnte darin bestehen, dass Sie ein Plugin schreiben, das den Vollbildmodus deaktiviert, kurz bevor das Softkeyboard erscheint und es anschließend wieder aktiviert.

    
Nico 20.06.2013 11:03
quelle
0

Entfernen Sie android:theme="@android:style/Theme.NoTitleBar.Fullscreen" aus dem Manifest und fügen Sie diese zwei Codezeilen hinzu:

%Vor%

Stellen Sie sicher, dass Ihre onCreate-Methode wie folgt aussieht:

%Vor%

Und alles wird funktionieren: D.

    
Dardan 07.08.2015 20:20
quelle