2012-08-29 21 views
1

現在我試圖在webview中顯示一個頁面,加載需要一些時間,同時我想顯示一個progressDialog。我可以做的最好的是下面的代碼,但問題是,即時通訊在onCreateView中執行,所以progressDiealog只顯示直到創建視圖,這不是我想要的。我知道,我必須使用它onActivityCreated,但林不知道該怎麼做,謝謝所有提前如何使用ProgressDialog和webview中的一個片段

public class someFragment extends SherlockFragment { 
Context context; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) 
    { 
    View v = inflater.inflate(R.layout.some_layout, group, false); 
    final ProgressDialog pd = ProgressDialog.show(getActivity(), "", "Loading", true); 

    final WebView myWebView = (WebView) v.findViewById(R.id.webViewsome); 
    myWebView.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      pd.dismiss(); 
     } 
    }); 

    myWebView.getSettings().setPluginsEnabled(true); 
    myWebView.getSettings().setBuiltInZoomControls(false); 
    myWebView.getSettings().setSupportZoom(false); 
    myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    myWebView.getSettings().setJavaScriptEnabled(true); 
    myWebView.getSettings().setAllowFileAccess(true); 
    myWebView.getSettings().setDomStorageEnabled(true); 
    myWebView.setInitialScale(25); 

    myWebView.getSettings().setDefaultZoom(ZoomDensity.FAR); 

    myWebView.loadUrl("http://www.test.com/test-0.jpg"); 

    return v; 
    } 
} 

回答

1

試試這個在SomeFragment

private class MyWebViewClient extends WebViewClient { 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     //remove your progressdialog here 
     super.onPageFinished(view, url); 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     //show your progressdialog here 
     super.onPageStarted(view, url, favicon); 
    } 

} 

則:

webView.setWebViewClient(new MyWebViewClient()); 
0

你可以做的一件事是在onCreateView中啓動一個AsyncTask,其中有一個progressDialog。在onPageFinished(網頁完全加載後)webView中,取消該任務。希望它有用。

相關問題