3

ときどき、loadUrl を使用して Web ビューをロードすると、画面に触れるかスクロールするまで Web サイトが表示されないことがあります。

Webview の描画に問題があるようです。

            Context context = ctx;
        final Dialog dialog = new Dialog(context);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.website);
            WebView webView = (WebView) dialog.findViewById(R.id.weburl);
            webView.setScrollbarFadingEnabled(false);  
            //Disable the horizontal scroll bar  
            webView.setHorizontalScrollBarEnabled(false);  
            //Enable JavaScript  
            webView.getSettings().setJavaScriptEnabled(true);  
            //Set the user agent  
            webView.getSettings().setUserAgentString("AndroidWebView");  
            //Clear the cache  
            webView.clearCache(true);  


            webView.loadUrl("http://" + WebUrl);
            webView.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(WebView view, String url){
                    // do your handling codes here, which url is the requested url
                    // probably you need to open that url rather than redirect:
                    view.loadUrl(url);
                    view.setVisibility(View.VISIBLE);
                    return false; // then it is not handled by default action
               }

                @Override
                public void onPageFinished(WebView view, String url) {
                    view.refreshDrawableState();
                    Log.v("FINISH","FINISH");
                }


            });

なぜ私がこの種の問題を抱えているのか、誰にも分かりますか。

4

3 に答える 3

2

テストしているAndroidのバージョンは何ですか?4.1より前のバージョンのAndroidでは、WebViewでこのような問題が発生することがあります。

これをそのアクティビティのマニフェストに追加して、問題を修正します。

android:hardwareAccelerated="false"
于 2012-10-17T16:51:17.067 に答える
0

よくわかりませんが、コード全体を持っているわけではありませんが、webViewClientこの関数に実装されているものに関連していると思います:

public boolean shouldOverrideUrlLoading(WebView view, String url){
    // do your handling codes here, which url is the requested url
    // probably you need to open that url rather than redirect:
    view.loadUrl(url);
    view.setVisibility(View.VISIBLE);
    return false; // then it is not handled by default action
}

公式の定義は次のとおりです。

public boolean shouldOverrideUrlLoading (WebView ビュー、文字列 URL)

を実装せずにコードでテストするshouldOverrideUrlLoadingか、作成してみてくださいreturn true

于 2012-10-17T16:28:51.240 に答える