html-textfield-Objekt in WebView in Android-Anwendung versteckt ist, indem Sie die soft-Tastatur
Ich habe ein Android-Anwendung, die ein TabHost mit einem WebView. Ich benutze es zum laden einer bestimmten html-Datei mit einem text-Feld in Ihrem unteren Teil.
Wenn ich berühre das html-textfield, die soft-Tastatur eingeblendet und blendet die textfield, so dass ich nicht sehen kann, was ich eingegeben haben.
Hier ist das layout:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TabWidget
android:focusableInTouchMode="false"
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="63dp" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
Ich habe versucht, konfigurieren Sie die AndroidManifest.xml Datei mit android:windowSoftInputMode="adjustResize"
ohne Erfolg. Ich habe auch versucht, anstelle der FrameLayout
in meinem layout mit ScollView
, aber das verursacht mein webview
zu erhöhen, in der Größe unbegrenzt, wenn die Anwendung ausgeführt wird.. dies kann durch javascript habe ich laufen auf die Seite.
Mir aufgefallen, dass der android-browser hat eine nette Verhalten - in eine web-Seite, nachdem die virtuelle Tastatur eingeblendet, die web-Seite scrollt reibungslos, so dass das fokussierbare textfield-Objekt für den Benutzer sichtbar ist. Wie kann ich dieses Verhalten in meine Anwendung ein?
- Ein Weg, dieses Problem kann sein, benachrichtigt zu werden, wenn die soft-keybaord angezeigt wird, und ändern Sie dann die Größe manuell die webview. Ich habe versucht, die Umsetzung onCreateInputConnection(EditorInfo) in meinem layout-Klassen, konnte aber nicht eine Benachrichtigung erhalten, wenn die Tastatur erscheint. Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich wurde immer verrückter nichts funktioniert
android:windowSoftInputMode="adjustResize"
kann helfen, aber sicher sein, dass Ihre app nicht im Vollbildmodus.Entfernen Vollbildmodus für meine app das problem mit der layout-Größe ändern, mit softkeyboard.
adjustResize
wird nicht funktionieren, wennwindowFullscreen
eingestellt isttrue
Ich habe eine Lösung gefunden für dieses Problem. (etwa eine Woche nachdem ich die Frage gepostet; ich bekam nur zur Antwort bei stackoverflow heute...)
Hatte ich Stücke in meinem code geändert, dass die WebView ist die Höhe, die (um Platz für eine TabBar). Stellt sich heraus, dass beim aufrufen setLayoutParams auf eine WebView, die es nicht mehr ändern, seine Höhe, auch wenn Sie
android:windowSoftInputMode="adjustResize"
gesetzt.Ich umgangen die Notwendigkeit der Veränderung der WebView ist die Höhe, die durch das hinzufügen der TabBar, um die main.xml layout-Datei, mit einer anfänglichen Größe von 0. Wenn ich erhöhen Sie die TabBar ist eine Größe, die WebView-Größe verringert sich automatisch, und es bleibt das
android:windowSoftInputMode="adjustResize"
Verhalten.setLayoutParams()
mit Ihrem webview. Ich bin wirklich stecken bei diesem problem und ist nicht in der Lage, eine Lösung zu finden noch. Bitte aktualisieren Sie Ihre Antwort.