小伙伴们,在上文中我们介绍了Android视图组件AlertDialog,本文我们继续盘点,介绍一下视图控件的ProgressDialog。
特别注意:ProgressDialog在Android API级别26中已被废弃;取而代之的是ProgressBar和自定义布局来实现进度提示和等待效果
ProgressDialog是是Android平台上的一个对话框,用于显示进度信息或操作的等待状态。
ProgressDialog已在Android API级别26被弃用,推荐使用ProgressBar和自定义布局来代替。
若要创建一个ProgressDialog实例,可以使用ProgressDialog类的构造函数,并设置相关属性:
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setTitle("Title"); // 设置对话框标题
progressDialog.setMessage("Message"); // 设置对话框消息内容
progressDialog.setIcon(R.drawable.icon); // 设置对话框图标
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); // 设置进度条样式,包括STYLE_SPINNER(圆形旋转)和STYLE_HORIZONTAL(水平进度条)
progressDialog.setIndeterminate(true); // 设置是否为不确定模式(即不显示具体进度)可以使用setMax(int max)和setProgress(int progress)方法设置最大进度值和当前进度值。若使用setIndeterminate(true)将其设置为不确定模式,则无需设置进度。
使用setCancelable(boolean cancelable)方法可以设置对话框是否可取消,默认为可以取消。
调用show()方法显示ProgressDialog,调用dismiss()方法关闭对话框。
若需要在ProgressDialog中显示自定义布局,可以通过setContentView(View view)方法设置自定义布局。
若要在后台线程中更新ProgressDialog的进度,需确保在UI线程中进行进度更新,可以使用runOnUiThread(Runnable action)方法或Handler来实现。
适用场景:ProgressDialog适合于在进行耗时操作时向用户展示当前进度或等待状态,以增强用户体验。
setTitle(String title):设置对话框的标题。setMessage(String message):设置对话框的消息内容。setIcon(int iconResId):设置对话框的图标,传入图标资源的ID。setProgressStyle(int style):设置进度条的样式,包括ProgressDialog.STYLE_SPINNER(圆形旋转)和ProgressDialog.STYLE_HORIZONTAL(水平进度条)。setIndeterminate(boolean indeterminate):设置是否为不确定模式(即不显示具体进度)。setMax(int max):设置进度条的最大值。setProgress(int progress):设置当前的进度值。setCancelable(boolean cancelable):设置对话框是否可取消,默认为可以取消。setCanceledOnTouchOutside(boolean canceledOnTouchOutside):设置点击对话框外部区域是否取消对话框。show():显示ProgressDialog。dismiss():关闭ProgressDialog。ProgressDialog已被废弃,但是以前很多老的项目有的还有这个组件,有些项目的bug也和这个有关,所以也整理了一下,建议如果搞不定,直接换ProgressBar和自定义布局。