【Android从零单排系列十六】《Android视图控件——ProgressDialog》

2023-07-17 20:25:59 浏览数 (1)

前言

小伙伴们,在上文中我们介绍了Android视图组件AlertDialog,本文我们继续盘点,介绍一下视图控件的ProgressDialog。

特别注意:ProgressDialog在Android API级别26中已被废弃;取而代之的是ProgressBar和自定义布局来实现进度提示和等待效果

一 ProgressDialog基本介绍

ProgressDialog是是Android平台上的一个对话框,用于显示进度信息或操作的等待状态。

二 ProgressDialog使用方法

ProgressDialog已在Android API级别26被弃用,推荐使用ProgressBar和自定义布局来代替。

若要创建一个ProgressDialog实例,可以使用ProgressDialog类的构造函数,并设置相关属性:

代码语言:javascript复制
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适合于在进行耗时操作时向用户展示当前进度或等待状态,以增强用户体验。

三 ProgressDialog常见方法和属性

  1. setTitle(String title):设置对话框的标题。
  2. setMessage(String message):设置对话框的消息内容。
  3. setIcon(int iconResId):设置对话框的图标,传入图标资源的ID。
  4. setProgressStyle(int style):设置进度条的样式,包括ProgressDialog.STYLE_SPINNER(圆形旋转)和ProgressDialog.STYLE_HORIZONTAL(水平进度条)。
  5. setIndeterminate(boolean indeterminate):设置是否为不确定模式(即不显示具体进度)。
  6. setMax(int max):设置进度条的最大值。
  7. setProgress(int progress):设置当前的进度值。
  8. setCancelable(boolean cancelable):设置对话框是否可取消,默认为可以取消。
  9. setCanceledOnTouchOutside(boolean canceledOnTouchOutside):设置点击对话框外部区域是否取消对话框。
  10. show():显示ProgressDialog。
  11. dismiss():关闭ProgressDialog。

四 总结

ProgressDialog已被废弃,但是以前很多老的项目有的还有这个组件,有些项目的bug也和这个有关,所以也整理了一下,建议如果搞不定,直接换ProgressBar和自定义布局。

0 人点赞