现在我试图在webview中显示一个页面,加载需要一些时间,同时我想显示progressDialog。我能做的最好的是下面的代码,但问题是我在onCreateView中执行它,所以progressDiealog只显示,直到创建视图,这不是我想要的。我知道我必须在onActivityCreated中使用它,但我不知道如何做到这一点,谢谢所有提前
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;
}
}
答案 0 :(得分: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());
答案 1 :(得分:0)
您可以做的一件事是,onCreateView
在其中AsyncTask
开始progressDialog
。在onPageFinished
的{{1}}中(在完全加载网页后),取消该任务。希望它有用。