Android 显示加载中状态

更新日期: 2022-04-07 阅读次数: 3435 字数: 239 分类: Android

例如,我要上传一个比较大的图片文件到服务器,等待处理完成,并接收返回结果。 这个过程可能很漫长,需要等待两秒,这时候我需要一个加载中的状态提示,避免用户不知所措。

Android Kotlin 比较好的实现方式

https://stackoverflow.com/questions/45373007/progressdialog-is-deprecated-what-is-the-alternate-one-to-use

显示效果

Android 显示加载中状态

实现逻辑

  • 先实现一个 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 聊聊, 查看更多联系方式