2016-06-10 9 views
1

Meine Cordova App besteht aus mehreren HTML-Dateien, die jeweils verschiedene Ansichten darstellen, aber die Tastatur verwirrte das Webview. Auf iOS habe ich die ionic-plugin-tastaturcordova soft Eingabemodus android

verwendet, um Dinge zu beheben, aber nur iOS unterstützt. Ich könnte hinzufügen,

android: windowSoftInputMode = "adjustPan" AndroidManifest.xml, die scheint es zu beheben, aber ich möchte, dass dies nur für eine Ansicht gelten. Mit anderen Worten, ich möchte, dass die Tastatur die Ansichten mit Ausnahme einer bestimmten Ansicht nach oben verschiebt.

Ich dachte, ich zwischen diesen beiden

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) 
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

je nachdem, welche Ansicht ich bin in, aber es sieht aus wie einmal setSoftInputMode es später nicht mehr geändert werden kann, wird wechseln könnte? Was ist der beste Weg, dies zu lösen? Wie würde ich verhindern, dass die Tastatur eine Fußzeile hochschiebt? (Dieses Verhalten tritt nur in Android auf).

Entschuldigung, wenn meine Fragen verwirrend sind, aber ich habe versucht, diese für einige Tage jetzt zu lösen, und Tastatur frustriert mich wirklich.

Antwort

3

Ich denke, ich habe den besten Weg gefunden, um dieses Problem zu lösen. Ich habe ein Cordova-Plugin erstellt. Als ich diese Frage schrieb (30 Minuten vor dieser Antwort) hatte ich keine Ahnung, wie man ein Cordova-Plugin erstellt, also folgte ich diesem großartigen Tutorial: http://www.mat-d.com/site/tutorial-creating-a-cordova-phonegap-plugin-for-android-app/.

Basierend auf diesem ein I import android.view.WindowManager; und als in der Ausführungsfunktion in dem runOnUiThread runnable importiert als ich habe dieses Bild

if(action.equals("adjustPan")) 
    cordova.getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 
else if(action.equals("adjustResize")) 
    cordova.getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

auf, wie ich die Funktion von JavaScript-Aufruf, den Eingabemodus ändert :)

werde ich dieses Plugin fügen Sie den Link hier

bearbeiten GitHub und fügen: hier der Link aus dem https://github.com/denkomanceski/windowSoftInputMode Plugin ist

Alle

die Anweisungen gibt es

+0

Das ist großartig, aber wie füge ich es config.xml? – Drutten

+0

Ok scheint diese Art der Arbeit: aber jetzt in meiner .ts-Datei sagt, es kann nicht finde FensterSoftManager – Drutten

Verwandte Themen