例如,我要上传一个比较大的图片文件到服务器,等待处理完成,并接收返回结果。 这个过程可能很漫长,需要等待两秒,这时候我需要一个加载中的状态提示,避免用户不知所措。
Android Kotlin 比较好的实现方式
https://stackoverflow.com/questions/45373007/progressdialog-is-deprecated-what-is-the-alternate-one-to-use
显示效果
实现逻辑
- 先实现一个 layout_loading_dialog.xml,里面包含一个 ProgressBar 显示转圈,及一个 TextView 显示提示文字
- 定义一个 AlertDialog,setView 为上面的 layout 文件
- 在 UI 线程里调用 dialog.show() / dialog.dismiss()
layout_loading_dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="20dp">
<ProgressBar
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center"
android:text="图片分析中,请稍候 ..." />
</LinearLayout>
activity.kt
// 成员变量
private lateinit var dialog: AlertDialog
// onCreate
val builder: AlertDialog.Builder = AlertDialog.Builder(this)
builder.setCancelable(false) // if you want user to wait for some process to finish,
builder.setView(R.layout.layout_loading_dialog)
dialog = builder.create()
// 处理逻辑中
dialog.show() // to show this dialog
dialog.dismiss() // to hide this dialog
MATERIAL DESIGN 有这个组件
https://material.io/components/progress-indicators/android#using-progress-indicators
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式