在Android应用程序的WebView中的HTML文本字段被软键盘隐藏

我有一个Android应用程序是一个WebView的TabHost。 我用它来加载一个特定的HTML文件,在其底部有一个文本字段。

当我触摸HTML文本框时,popup软键盘,并隐藏文本框,以便我看不到我input的内容。

这是布局:

<?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> 

我试图用android:windowSoftInputMode="adjustResize"configurationAndroidManifest.xml文件,但没有成功。 我也尝试用ScollViewreplace我的布局中的FrameLayout ,但是当应用程序正在运行时,导致我的webview无限增大..这可能是由于我在页面上运行了一些JavaScript。

我注意到,android的网页浏览器有一个漂亮的行为 – 在网页中,popup软键盘后,网页滚动顺畅,使用户可以看到焦点文本框。 我怎么能在我的应用程序中有这种行为?

  • 无法在webview中显示htmlstring
  • 在TabLayout中使用多个webview来处理内存问题的逻辑
  • iframevideo不会在Android网页视图中进入全屏模式
  • 阻止Android WebViewcaching数据
  • 如何处理webview确认对话框?
  • 传递一个值给loadURL - Android
  • 如何查看/debugging手机浏览器发送的非标准请求标头?
  • shouldoverrideurlloading和shouldinterceptrequest之间的区别?
  • 我越来越疯狂没有作品android:windowSoftInputMode="adjustResize"可能会帮助,但一定要让你的应用程序android:windowSoftInputMode="adjustResize"屏幕。

    删除我的应用程序的全屏解决了与softkeyboard的布局resize的问题。

     <item name="android:windowFullscreen">false</item> 

    我find了这个问题的解决scheme。 (我发布这个问题大概一个星期后,我只能在今天的计算器中回答…)

    我在我的代码片断,改变了WebView的高度(为TabBar有空间)。 原来,当你在WebView上调用setLayoutParams时,即使你设置了android:windowSoftInputMode="adjustResize" ,也不会再改变它的高度。

    我绕过了需要改变WebView的高度,通过添加TabBar到main.xml布局文件,初始大小为0.当我增加TabBar的大小,WebView的大小自动下降,它保留了android:windowSoftInputMode="adjustResize"行为。