问题描述
我有一个 Android 应用程序,它是一个带有 WebView 的 TabHost.我用它来加载一个特定的 html 文件,该文件的底部有一个文本字段.
I have an Android application that is a TabHost with a WebView. I use it to load a specific html file that has a text field in its bottom part.
当我触摸 html 文本框时,软键盘会弹出,并隐藏文本框,这样我就看不到我输入的内容了.
When I touch the html textfield, the soft keyboard pops up, and hides the textfield, so that I cannot see what I have typed.
这是布局:
<?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" 配置 AndroidManifest.xml 文件,但没有成功.我还尝试用 ScollView 替换布局中的 FrameLayout,但这会导致我的 webview 在应用程序运行时无限增大.. 这可能是由于我在页面上运行了一些 javascript.
I have tried to configure the AndroidManifest.xml file with android:windowSoftInputMode="adjustResize" with no success. I have also tried replacing the FrameLayout in my layout with ScollView, but that caused my webview to increase in size indefinitely when the application is running.. this may be due to some javascript I have running on the page.
我注意到 android 的网络浏览器有一个漂亮的行为 - 在网页中,软键盘弹出后,网页平滑滚动,以便用户可以看到可聚焦的文本字段.我的应用程序中怎么会有这种行为?
I have noticed that the android's web browser has a nifty behavior - in a web page, after the soft keyboard pops up, the web page scrolls smoothly so that the focusable textfield is visible to the user. How can I have this kind of behavior in my application?
推荐答案
我找到了解决这个问题的方法.(大约在我发布问题一周后;我今天才在 stackoverflow 中回答......)
I found a solution for this issue. (about a week after I posted the question; I only got to answering in stackoverflow today...)
我的代码中有一些片段改变了 WebView 的高度(为 TabBar 留出空间).事实证明,当您在 WebView 上调用 setLayoutParams 时,即使您设置了 android:windowSoftInputMode="adjustResize",它也不会再改变其高度.
I had pieces in my code that changed the WebView's height (to have room for a TabBar). Turns out that when you invoke setLayoutParams on a WebView, it will no longer change its height even if you have android:windowSoftInputMode="adjustResize" set.
我通过将 TabBar 添加到 main.xml 布局文件中来规避更改 WebView 高度的需要,初始大小为 0.当我增加 TabBar 的大小时,WebView 的大小会自动减小,并保留 android:windowSoftInputMode="adjustResize" 行为.
I circumvented the need to change the WebView's height by adding the TabBar to the main.xml layout file, with an initial size of 0. When I increase the TabBar's size, the WebView's size decreases automatically, and it preserves the android:windowSoftInputMode="adjustResize" behavior.
这篇关于Android应用程序中WebView中的html文本字段被软键盘隐藏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)