![📱 Colocar un progressbar WebView en Android Studio [28] 1 Colocar un progressbar WebView en Android Studio](https://www.programadornovato.com/wp-content/uploads/2021/12/28-535x251.png)
📱 Colocar un progressbar WebView en Android Studio [28]
En este tutorial vamos Colocar un progressbar WebView en Android Studio (Barra de progreso) a nuestro WebView para ver qué porcentaje de la página va cargando.
Insertar un Progressbar en nuestro diseño y colocaremos su atributo visible como false.
- Llamar al objeto WebChromeClient que llamara el evento onProgressChanged.
- Cuando se ejecute el evento onProgressChanged:
- Colocaremos el progreso del Progressbar en 0.
- Colocaremos la visibilidad en visible.
- Incrementaremos el progreso del Progressbar.
- Cuando el progreso de la carga sea 100 ocultaremos el Progressbar.
package com.programadornovato.miprimerproyecto
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Bitmap
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.webkit.*
import android.widget.*
import androidx.appcompat.app.AlertDialog
import java.math.BigDecimal
import kotlin.math.PI
import kotlin.math.round
class MainActivity : AppCompatActivity() {
private var txtURL:EditText?=null
private var navegador:WebView?=null
private var pbCarga:ProgressBar?=null
private var errorPagina=false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
txtURL=findViewById(R.id.txtURL)
navegador=findViewById(R.id.navegador)
pbCarga=findViewById(R.id.pbCarga)
navegador?.clearCache(false)
navegador?.settings?.javaScriptEnabled=true
navegador?.webViewClient = object : WebViewClient(){
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
super.onReceivedError(view, request, error)
errorPagina=true
Toast.makeText(this@MainActivity,"Error al cargar: $error",Toast.LENGTH_LONG).show()
}
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
if(errorPagina==false){
Toast.makeText(this@MainActivity,"La pagina termino de cargar",Toast.LENGTH_LONG).show()
}
}
}
navegador?.webChromeClient = object : WebChromeClient(){
override fun onProgressChanged(view: WebView?, newProgress: Int) {
super.onProgressChanged(view, newProgress)
pbCarga?.progress=0
pbCarga?.visibility=View.VISIBLE
pbCarga?.incrementProgressBy(newProgress)
if(newProgress==100){
pbCarga?.visibility=View.GONE
}
}
}
}
fun cargar(view: View){
errorPagina=false
var url=txtURL?.text.toString()
navegador?.loadUrl(url)
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/txtURL"
android:layout_width="314dp"
android:layout_height="51dp"
android:ems="10"
android:hint="Humano a que pagina quieres ir!!"
android:inputType="textPersonName"
android:text="https://www.programadornovato.com"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="cargar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@android:drawable/ic_media_next" />
<WebView
android:id="@+id/navegador"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pbCarga" />
<ProgressBar
android:id="@+id/pbCarga"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtURL" />
</androidx.constraintlayout.widget.ConstraintLayout>
🎦 Lista de reproducción de este curso: https://www.youtube.com/watch?v=3ZUlE_tvfaM&list=PLCTD_CpMeEKRL2-HaZThebGcyyR3_RshO&ab_channel=programadornovato
🎦 Curso de Android Studio: https://www.youtube.com/watch?v=AHyTqIB_8Rs&list=PLCTD_CpMeEKTT9pb9J-89j1SPtqHzU7sF&ab_channel=programadornovato
🎦 [Curso] Java Netbeans Completo☕: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF
🎦 [Curso] Kotlin de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKSjzbsW_zmVNz23GyOVsdbS
🎦 [Curso] Java Netbeans Completo☕: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF
🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
🔗 Pagina oficial: https://www.programadornovato.com
🔗 Gracias por apoyar este canal: https://www.patreon.com/programadornovato
Anterior tutorial Siguiente tutorial
Ave que vuela, a la cazuela.