简体   繁体   English

加载Web视图后,如何使进度条消失?

[英]How to make progress bar disappear once web view is loaded?

I am developing the WebView for my project. 我正在为我的项目开发WebView。 I have used the WebView with progress bar. 我已将WebView与进度条一起使用。 The progress bar loads properly when WebView loads. 加载WebView时,进度条将正确加载。 After Loading the page the progress bar is not disappearing. 加载页面后,进度条不会消失。 How to make its visibility gone. 如何使其知名度消失。

I will share the code. 我将分享代码。 I have created webview with progress bar. 我用进度条创建了webview。

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String url = "https://rnbazar.com/";
    setContentView(R.layout.activity_main);
    final WebView myWebView = (WebView) findViewById(R.id.webview);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    //myWebView.setWebViewClient(new WebViewClient());
    myWebView.getSettings().setUseWideViewPort(true);
    myWebView.getSettings().setLoadWithOverviewMode(true);
    myWebView.loadUrl(url);
    myWebView.setWebViewClient(new MyWebViewClient());

    myWebView.setWebViewClient(new WebViewClient() {
      @Override public void onReceivedError(WebView view, int errorCode,
        String description, String failingUrl) {
        myWebView.loadUrl("file:///android_asset/error.html");
      }
    });
  }

  private class MyWebViewClient extends WebViewClient {
    @Override
    public void onPageStarted(final WebView myWebView, final String url,
      final Bitmap favicon) {
      ProgressBar bar = (ProgressBar)
      myWebView.findViewById(R.id.progressBar);

      bar.setVisibility(View.VISIBLE);
      super.onPageStarted(myWebView, url, favicon);

    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView myWebView, String url) {

      myWebView.loadUrl(url);
      return true;
    }

    @Override
    public void onPageFinished(WebView myWebView, String url) {
      ProgressBar bar = (ProgressBar)
      myWebView.findViewById(R.id.progressBar);
      super.onPageFinished(myWebView, url);
      bar.setVisibility(View.GONE);
    }

  }
}

I want to make disappear progress bar once page loads. 页面加载后,我想使进度条消失。 if i click any link again loader comes & again disappears after page loads. 如果我再次单击任何链接,则加载程序会在页面加载后再次消失。

a WebView might with high probability not contain any R.id.progressBar ... 一个WebView R.id.progressBar可能不包含任何R.id.progressBar ...

public class MainActivity extends Activity {

    private WebView mWebView = null;
    private Progressbar mProgressbar = null;
    private String url = "https://rnbazar.com/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.activity_main);

        this.mWebView = (WebView) findViewById(R.id.webview);
        this.mProgressbar = (Progressbar) findViewById(R.id.progressBar);
    }
    ...

and then you can use that reference: 然后您可以使用该参考:

private class MyWebViewClient extends WebViewClient {

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

    @Override
    public boolean shouldOverrideUrlLoading(WebView webView, String url) {
        webView.loadUrl(url);
        return true;
    }

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM