0

I have a webView in android that loads a particular site, i want to display a loading icon or progress bar on clicking any of the links inside the webView.

 webViewClient = (WebView) findViewById(R.id.contentContainer); WebSettings webSettings = webViewClient.getSettings(); webSettings.setJavaScriptEnabled(true); webViewClient.setWebViewClient(new WebViewClient()); webViewClient.loadUrl("URL"); 

3 Answers 3

2
 public class CustomWebViewClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { showProgressBar(); } @Override public void onPageFinished(WebView view, String url) { hideProgressBar(); } } webViewClient.setWebViewClient(new CustomWebViewClient()); 
Sign up to request clarification or add additional context in comments.

Comments

0
 webViewClient = (WebView) findViewById(R.id.contentContainer); WebSettings webSettings = webViewClient.getSettings(); webSettings.setJavaScriptEnabled(true); webViewClient.setWebViewClient(new WebViewClient(){ public void onProgressChanged(WebView view, int progress) { activity.setTitle("Loading..."); activity.setProgress(progress * 100); if(progress == 100) activity.setTitle("Your Title"); }); webViewClient.loadUrl("URL"); Following Link May help you as well : http://www.firstdroid.com/2010/08/04/adding-progress-bar-on-webview-android-tutorials/ 

Comments

0

First, you have to figure out when the click happens :

webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url){ webView.loadUrl(url); // Here the String url hold 'Clicked URL' return false; } }); 

Then, you have to put the Progressbar in a FrameLayout with your WebView.

<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Progressbar android:layout_width="wrap_content" android:layout_height="wrap_content"> <WebView android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> 

So, when the click happens, you can show your progressbar inside your Activity.

webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url){ if (url.equals("your_url"){ progressbar.setVisibility(View.VISIBLE); } return false; } }); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.