Reputation: 482
I have added progress bar in android webview, while run the project progress bar is working great but the problem is that progress bar is not stopped even after website is loaded.
Here is my code what I tried.
public class MainActivity extends AppCompatActivity {
WebView webView;
ProgressBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView2);
bar =(ProgressBar) findViewById(R.id.progressBar2);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("http://florro-001-site8.etempurl.com");
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
}
public class myWebClient extends WebViewClient{
@Override
public void onPageFinished(WebView view, String url) {
bar.setVisibility(View.GONE);
view.setVisibility(webView.VISIBLE);
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
bar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Upvotes: 0
Views: 135
Reputation: 85
You created the inner class myWebClient
where you change the visibility but never set it to your webview object.
in onCreate()
method:
webView.setWebViewClient(new WebViewClient());
webView.setWebViewClient(new WebViewClient());
Upvotes: 0
Reputation: 3976
set visibility gone in
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
bar.setVisibility(View.GONE);
return super.shouldOverrideUrlLoading(view, url);
}
also you create the class myWebClient
but you forget to set this
Replace this line
webView.setWebViewClient(new WebViewClient());
To
webView.setWebViewClient(new myWebClient());
Upvotes: 1