簡體   English   中英

在Xamarin android中加載webview時的進度欄

[英]Progressbar while loading webview in xamarin android

我想在加載Webview時顯示進度條,而在完全加載Webview時隱藏進度條。

這是我的Activity.cs

  progress = new ProgressDialog(this);
        progress.Indeterminate = true;

        progress.SetProgressStyle(Android.App.ProgressDialogStyle.Spinner);
        progress.SetMessage("Loading... Please wait...");
        progress.SetCancelable(false);
        progress.Show();

        _faq = FindViewById<Android.Webkit.WebView>(Resource.Id.wv_FAQ);

     _web.AppWebViewClients(progress);
     _web.ShouldOverrideUrlLoading(_faq, _url);
     _web.OnPageFinished(_faq, _url);

這是我的ResourceWebView.cs

 public class ResourceWebView: WebViewClient
{
    Android.App.ProgressDialog progress;

    public void AppWebViewClients(ProgressDialog progressBar)
    {
        this.progress = progressBar;
        progress.Show();
    }

    public bool ShouldOverrideUrlLoading(WebView view, String url)
    {

        view.LoadUrl(url);
        progress.Show();
        return true;
    }

    public void OnPageFinished(WebView view, String url)
    {
        OnPageFinished(view, url);
        progress.Hide();
    }
}

但是此代碼對我不起作用。

嘗試這個

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);

        urlEditText = (EditText) findViewById(R.id.urlField);
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new MyWebViewClient());

        progress = (ProgressBar) findViewById(R.id.progressBar);
        progress.setVisibility(View.GONE);
        Button openUrl = (Button) findViewById(R.id.goButton);
        openUrl.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                String url = urlEditText.getText().toString();
                if (validateUrl(url)) {
                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl(url);

                }
            }

            private boolean validateUrl(String url) {
                return true;
            }
        });

    }

    private class MyWebViewClient 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);
                WebViewActivity.this.progress.setProgress(100);
            super.onPageFinished(view, url);
        }

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

請參考此以獲取更多參考: http : //stacktips.com/tutorials/android/progressbar-while-loading-webview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM