Ho un'applicazione Android che è un TabHost con una WebView. Lo uso per caricare un file html specifico che ha un campo di testo nella parte inferiore.Il campo di testo HTML in WebView in un'applicazione Android è nascosto dalla tastiera software
Quando tocco il campo di testo html, la tastiera software si apre e nasconde il campo di testo, in modo che non riesca a vedere cosa ho digitato.
Ecco il 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>
Ho provato a configurare il file AndroidManifest.xml con android:windowSoftInputMode="adjustResize"
senza successo. Ho anche provato a sostituire lo FrameLayout
nel mio layout con ScollView
, ma ciò ha causato il mio ingrandimento della dimensione webview
indefinitamente quando l'applicazione è in esecuzione. Ciò potrebbe essere dovuto ad alcuni javascript in esecuzione sulla pagina.
Ho notato che il browser Web di Android ha un comportamento elegante: in una pagina Web, dopo l'apertura della tastiera software, la pagina Web scorre agevolmente in modo che il campo di testo focalizzabile sia visibile all'utente. Come posso avere questo tipo di comportamento nella mia applicazione?
Un modo per ovviare a questo problema può essere notificato quando viene visualizzato il soft keybaord, quindi ridimensionare manualmente la visualizzazione Web. Ho provato a implementare onCreateInputConnection (EditorInfo) in tutte le mie classi di layout, ma non ho potuto ricevere una notifica quando appare la tastiera. Help! – gardenofwine