在Android中的WebView中加载URL时如何在ProgressBar中显示进度?
Android 中的 ProgressBar 是一个 UI 元素,它以一些动画的形式在后台显示一些正在完成的工作的状态。它可以是任何东西,如计算、加载、搜索、获取、下载等。ProgressBar 大致有两种类型,即旋转轮和单杠。
在本文中,我们想向您展示如何在 Android 中实现 ProgressBar 并在加载特定网页之前显示它。
分步实施
第 1 步:在 Android Studio 中创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。
第 2 步:在 Manifest 文件 (AndroidManifest.xml) 中添加 Internet 权限
要加载网页,我们需要我们的应用程序使用 Internet。所以我们需要添加使用互联网的权限。
XML
XML
Kotlin
import android.os.Bundle
import android.view.View
import android.webkit.WebView
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
// Declaring webView and progressBar
private lateinit var webView: WebView
lateinit var progressBar: ProgressBar
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Initializing Webview and
// progressBar from the layout file
webView = findViewById(R.id.webView)
progressBar = findViewById(R.id.progressBar)
// Setting a webViewClient
webView.webViewClient = WebViewClient()
// Loading a URL
webView.loadUrl("https://geeksforgeeks.org")
}
// Overriding WebViewClient functions
inner class WebViewClient : android.webkit.WebViewClient() {
// Load the URL
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
view.loadUrl(url)
return false
}
// ProgressBar will disappear once page is loaded
override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
progressBar.visibility = View.GONE
}
}
}
第三步:在布局文件(activity_main.xml)中添加一个ProgressBar和一个WebView
XML
第 4 步:在主代码(MainActivity.kt)中添加
请参阅注释以获得更好的理解。
科特林
import android.os.Bundle
import android.view.View
import android.webkit.WebView
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
// Declaring webView and progressBar
private lateinit var webView: WebView
lateinit var progressBar: ProgressBar
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Initializing Webview and
// progressBar from the layout file
webView = findViewById(R.id.webView)
progressBar = findViewById(R.id.progressBar)
// Setting a webViewClient
webView.webViewClient = WebViewClient()
// Loading a URL
webView.loadUrl("https://geeksforgeeks.org")
}
// Overriding WebViewClient functions
inner class WebViewClient : android.webkit.WebViewClient() {
// Load the URL
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
view.loadUrl(url)
return false
}
// ProgressBar will disappear once page is loaded
override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
progressBar.visibility = View.GONE
}
}
}
输出:
您可以看到在页面加载之前运行的进度条。页面加载后,进度条就会消失。
P.S: Watch the output at a speed lower than normal.
想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!