Android WebView仅在单击/滚动后显示内容

时间:2012-12-04 11:59:49

标签: android android-webview

我正在编写一个包含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>

3 个答案:

答案 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()解决了我的问题。