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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式