-2

I am creating a simple app Android webview, but also following the guides, I can not implement a progress bar to my code. how can I implement a loading bar that will disappear after the page loads?

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView view = (WebView) this.findViewById(R.id.webView);
        view.getSettings().setJavaScriptEnabled(true);
        view.setWebViewClient(new MyBrowser());
        view.loadUrl("http://www.abcdefcsadfg.org");
    }

    private class MyBrowser extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}
ThunderOver
  • 81
  • 1
  • 8
  • possible duplicate of [Android WebView progress bar](http://stackoverflow.com/questions/2537454/android-webview-progress-bar) – King of Masses Sep 03 '15 at 12:06

2 Answers2

0

You can initialize a Progressbar in onCreate, like below and set its initial visibility to View.GONE.

progress = (ProgressBar) findViewById(R.id.progressBar);
progress.setVisibility(View.GONE);

And your MyBrowser should look like this

private class MyBrowser extends WebViewClient { 
     @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

     @Override
    public void onPageFinished(WebView view, String url) {
         progress.setVisibility(View.GONE); 
         super.onPageFinished(view, url);
    }

     @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
         progress.setVisibility(View.VISIBLE);
         super.onPageStarted(view, url, favicon);
    }
}

UPDATE: Check this link

Sumighosh Charuvil
  • 446
  • 1
  • 4
  • 14
0

You should declare progress bar in xml file and refer to it in the main activity so that it appears in your application. Set its progress in MyBrowser.

Refer this link, it will help you.

http://javatechig.com/android/progressbar-while-loading-webview