Индикатор выполнения для просмотра веб-страниц в виде фрагмента

Я пытаюсь сделать приложение для android в eclipse. Где i разные фрагменты с webviews в нем. Но я хочу показать индикатор выполнения при просмотре веб-страниц, но я не мог понять, как это сделать. Я проверил множество руководств, но не смог этого сделать. Позвольте мне больше кода активности здесь.

import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import android.webkit.WebViewClient; import android.app.Fragment; import android.annotation.SuppressLint; //import android.graphics.Bitmap; //import android.widget.ProgressBar; //import android.app.ProgressDialog; //import android.app.Activity; @SuppressLint("SetJavaScriptEnabled") public class AdminTab1 extends Fragment { private WebView webView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); View rootView = inflater.inflate(R.layout.admintab1, container, false); webView = (WebView) rootView.findViewById(R.id.webView1); webView.setWebViewClient(new WebViewClient()); webView.setScrollbarFadingEnabled(false); webView.setHorizontalScrollBarEnabled(false); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setUserAgentString("AndroidWebView"); webView.clearCache(true); webView.loadUrl("http://ww.google.com"); return rootView; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.mainmenu, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.item1: webView.reload(); break; case R.id.item2: webView.goBack(); break; default: break; } return true; } } 

WebViewClient имеет много обратных вызовов. Вы должны подклассифицировать его и переопределить onPageStarted чтобы показать и onPageFinished чтобы, например, отклонить его. Взгляните на документ, здесь

  private class MyWebClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, // here show the dialog } public void onPageFinished(WebView view, String url) { // here dismiss it } } 

И в onCreateView используйте его как

  webView.setWebViewClient(new MyWebClient()); 

Вы должны попробовать это

 public class About27Fragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.about_27, container, false); final WebView webView = (WebView) rootView.findViewById(R.id.webView_about27); final ProgressDialog dialog = ProgressDialog.show(getActivity(), "", "Please wait, Loading Page...", true); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.getSettings().setBuiltInZoomControls(true); webView.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {} @Override public void onPageStarted(WebView view, String url, Bitmap favicon){ dialog.show(); } @Override public void onPageFinished(WebView view, String url){ dialog.dismiss(); String webUrl = webView.getUrl(); } }); webView.loadUrl("https://www.google.com.mx"); return rootView; } 

}

OnCreate

 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.web_view); web_view = (WebView) findViewById(R.id.web_view); pd = new ProgressDialog(Activity.this); pd.setMessage("Please wait Loading..."); pd.show(); web_view.setWebViewClient(new MyWebViewClient()); web_view.loadUrl("ur site name"); } 

WebViewClient

 private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); if (!pd.isShowing()) { pd.show(); } return true; } @Override public void onPageFinished(WebView view, String url) { System.out.println("on finish"); if (pd.isShowing()) { pd.dismiss(); } } 

Таким образом, вы можете реализовать Progress Dialog в webview.

Попробуйте это, чтобы получить прогресс в процентах

 myWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { // Activities and WebViews measure progress with different // scales //Updaate progress bar here with progress int } });