敞开生长之旅!这是我参与「日新计划 2 月更文挑战」的第 3 天,点击检查活动概况
前言
之前咱们用过WebView类,翻开网页时就会呈现加载网页的情况,为了让咱们直观的感受到网页加载到什么程度而不是白白干等着空白页,所以加载进展条便是一个很好的展现方法,而通常情况下,当咱们的数据未加载完成时就会去运用进展条,而ProgressBar便是用于界面上显现进展条的,下面让咱们看看这个控件的运用方法。
正篇
运用方法
首要咱们将ProgressBar控件加到布局中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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"
android:orientation="vertical"
tools:context=".WebViewTest">
...
<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
然后运转程序就会发现咱们的这个页面上会加载这个进展条的圈:
但咱们会发现,这个圈一直在加载,所以就需要咱们对这个控件进行操控,正常情况下应该在数据未加载完成前显现,加载完成后隐藏控件的,直接用setVisibility()方法来完成即可,咱们这边简化一下,经过点击页面按钮来显现和隐藏:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/vWebView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<Button
android:id="@+id/vClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:layout_gravity="center"/>
</FrameLayout>
binding.vClick.setOnClickListener {
if (binding.progressBar.visibility == View.VISIBLE) {
binding.progressBar.visibility = View.GONE
} else {
binding.progressBar.visibility = View.VISIBLE
}
}
作用如下:
但是正常来说,web页面咱们一般不运用圈的方法,而是条形,其实很简单,只要改ProgressBar控件在XML布局中的一个特点:
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
/>
将它的style改为水平进展条,进展条最大长度设置为100,然后在Activity中代码操控这个进展长度即可:
binding.vClick.setOnClickListener {
// if (binding.progressBar.visibility == View.VISIBLE) {
// binding.progressBar.visibility = View.GONE
// } else {
// binding.progressBar.visibility = View.VISIBLE
// }
if (binding.progressBar.progress == 0) {
binding.progressBar.visibility = View.VISIBLE
}
binding.progressBar.progress = binding.progressBar.progress + 10
if (binding.progressBar.progress == 100) {
binding.progressBar.progress = 0
binding.progressBar.visibility = View.GONE
}
}
作用如下:
总结
本篇主要是介绍了进展条ProgressBar控件的根本运用方法,这个控件的使用场景非常多,而且现在也有许多封装好更美丽的控件,当咱们需要获取数据去加载时就适合去展现一段加载圈形式的进展条,再合作Dialog的作用,就能让用户感觉到数据的加载进程,这应该也是数据可视化的一种使用吧!