¿Cómo mostrar una barra de carga al renderizar con Webview.loadUrl en android?

Al usar la vista web para mostrar páginas html,

Habrá varios segundos de la página en blanco antes de que terminara de procesar.

¿Para una mejor experiencia del usuario, hay una manera de hacer que muestre una imagen de carga durante esos varios segundos?

Prueba esto

...... webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setTitle("Loading..."); activity.setProgress(progress * 100); if(progress == 100) activity.setTitle(R.string.app_name); } }); ... 

Pruebe este segmento de código. Mostrar un progresoDialog o imagen o diseño lo que quieras en onPageStarted() y ocultar en onPageFinished()

  webview.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO show you progress image super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { // TODO hide your progress image super.onPageFinished(view, url); } }); 

Pruebe este código para mostrar un ProgressDialog

  webView.setWebChromeClient(new WebChromeClient() { private ProgressDialog mProgress; @Override public void onProgressChanged(WebView view, int progress) { if (mProgress == null) { mProgress = new ProgressDialog(getActivity()); mProgress.show(); } mProgress.setMessage("Loading " + String.valueOf(progress) + "%"); if (progress == 100) { mProgress.dismiss(); mProgress = null; } } }); 

Esto es lo que funcionó para mí en KOTLIN :

 private fun setupWebView() { val webViewClient: WebViewClient = object: WebViewClient() { override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { view?.loadUrl(request?.url.toString()) return super.shouldOverrideUrlLoading(view, request) } override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { showProgressDialog() super.onPageStarted(view, url, favicon) } override fun onPageFinished(view: WebView?, url: String?) { hideProgressDialog() super.onPageFinished(view, url) } } webView.webViewClient = webViewClient webView.settings.javaScriptEnabled = true webView.settings.defaultTextEncodingName = "utf-8" } 
  • Cómo cargar un archivo js de los elementos en la vista web después de cargar html
  • Web View Display "Android WebCore no es compatible en este caso" Advertencia
  • WebView clearHistory () en la funcionalidad de Webview canGoback ()?
  • Ejecutar código javascript en Webview
  • WebView no se inicia cuando se inicia la aplicación
  • Transmisión de la matriz de la actividad a Javascript
  • ¿Por qué Android WebView muestra una pantalla en negro?
  • Anuncios de Admob no se muestran - Android
  • Cómo pasar los datos de la vista web a la aplicación nativa de Android
  • ¿Cómo abrir un nuevo navegador desde WebViewClient?
  • Error de vista web de Android "Señal fatal 5 (SIGTRAP)"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.