我正在编写一个包含webview的Android应用程序,该应用程序加载包含相当大的表单的页面。我在表单加载过程中显示了一个进度条。当进度条消失时,我经常只看到一个空白页面或表格的一些元素(如几个复选框,没有文字)。在我尝试滚动页面(单击)后,一切都会显示出来。知道这里有什么问题吗?
webview的设置为:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDatabaseEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setAppCacheMaxSize(1024*1024*128);
mWebView.getSettings().setAppCachePath(getActivity().getApplicationContext().getCacheDir().getAbsolutePath());
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onExceededDatabaseQuota(String url,
String databaseIdentifier,
long currentQuota,
long estimatedSize,
long totalUsedQuota,
WebStorage.QuotaUpdater quotaUpdater)
{
quotaUpdater.updateQuota(estimatedSize * 2);
}
});
mWebView.addJavascriptInterface(new WebFormJavascriptInterface(), "jsinterface");
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
mWebView.getSettings().setPluginState(android.webkit.WebSettings.PluginState.ON_DEMAND);
,布局文件为:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hardwareAccelerated="false"
android:persistentDrawingCache="all"
/>
<ProgressBar
android:id="@+id/progressbar"
style="@android:style/Widget.Holo.ProgressBar.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminate="true"
android:visibility="gone"/>
</RelativeLayout>
答案 0 :(得分:1)
我遇到了另一个问题,但遇到了这个问题。做
webview.postInvalidateDelayed(1500);
onPageFinished中的几乎帮助WebView在新的WebViewClient(){}声明中1.5秒后自行刷新。虽然
,但这个答案可能比这个更好答案 1 :(得分:1)
您是否覆盖WebViewClient?我在覆盖WebViewClient的onPageStarted()和onPageFinished()方法时遇到同样的问题,删除了super.onPageStarted()和super.onPageFinished()。 WebView首先加载空白页面,并在触摸屏幕时显示内容。 返回调用super(super.onPageStarted(),super.onPageFinished())的方法来解决我的问题。
答案 2 :(得分:1)
我有一个类似的问题。当我想在Webview中查看新内容时调用mWebView.requestFocusFromTouch()
解决了我的问题。