2012-08-29 26 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中,取消该任务。希望它有用。

相关问题