2014-10-17 1 views
0

모든 웹 데이터가로드 될 때까지 webView를 표시하는 방법을 어떻게 알 수 있습니까?asynk에서 'webView.loadUrl'을 기증 한 후 즉시 웹 페이지가 표시되지 않습니다.

@Override 
protected Void doInBackground(String... params) { 


    webView.setWebChromeClient(new WebChromeClient()); 
    webView.setWebViewClient(new WebViewClient()); 
    webView.getSettings().setJavaScriptEnabled(true); 
    String url = params[0]; 
    webView.loadUrl(url); 



    return null; 
} 

@Override 
protected void onPreExecute() { 
//progress = ProgressDialog.show(MainActivity.this,"wait","downloading URL"); 
    progressBar.setVisibility(View.VISIBLE); 
} 

@Override 
protected void onPostExecute(Void result) { 


      webView.setVisibility(View.VISIBLE); 
      progressBar.setVisibility(View.GONE); 



} 

} 

작동하지만이 코드의 끝, onPostExecute 후 난 아직도,

답변

0

loadUrl 이미 비동기 적으로 최선을 다하고있다 웹뷰로드의 빈 페이지를보고 있어요 : 나는이 asynktask 스케치를 만들었습니다 onPostExecute가 바로 호출됩니다.

mWebView.setWebViewClient(new WebViewClient() { 

    public void onPageStarted (WebView view, String url, Bitmap favicon) { 
     view.setVisibility(View.GONE); 
     progressBar.setVisibility(View.VISIBLE); 
    } 

    public void onPageFinished(WebView view, String url) { 
     view.setVisibility(View.VISIBLE); 
     progressBar.setVisibility(View.GONE); 
    } 
}); 
webView.loadUrl(url); 

물론

당신에게 AsyncTask를 제거 : 당신이 로딩 표시기를 표시하려면

, 당신은 것을 사용해야합니다.

기타 : here

+0

로딩 표시기 예제를 보여주십시오. 예를 들어 progressBar를 사용하고 있습니다. 로드가 완료되었을 때만 webview 가시성을 'Visible'로 설정할 수 있습니까? – Gabrio

+0

답변을 업데이트했습니다. 페이지에 iframe 및 이와 유사한 콘텐츠가있는 경우 내 답변에서 제공된 링크의 다른 예를 사용하십시오. –

+0

u soo 훨씬 감사드립니다 :) – Gabrio

관련 문제