如何将进度对话框设置为两者之间的最大值

How to set progress dialog to max value in between

我有一个进度对话框,需要 3 分钟才能填满进度。

如果我早些时候从服务器得到响应,我想将进度填充到 100%,然后禁用它。

这是我的代码,但它没有将进度条填充到 100%。

  progressBar.setProgress(100);
  progressBar.cancel();
  progressBarLayout.setVisibility(View.GONE)

我有一个单独的 progress dialog 布局,我在设置 progressBar to 100 时禁用了它。可能这就是它无法呈现进度对话框的原因。

这里可能有问题:

progressBar 有一个 setMax 方法。因此,如果您的最大值设置为 2(例如),如果您使用 progressBar.setProgress(1);,它将提前到 50%。

如果您想始终将其完全填满,可以使用类似的方法:

progressBar.setProgress(progressBar.getMax());

可能的问题: 我不确定你是否应该在 UI 线程中更改它,因为你正在触摸 UI,我建议检查它。

希望对您有所帮助。

您的代码将其填充到 100%,但立即使其消失,因此您看不到它。尝试在 运行nable 中添加关于让你的栏不可见的代码,只有在你从服务器

得到确认后才启动
Runnable r = new Runnable() {
        @Override
        public void run() {
            progressBarLayout.setVisibility(View.GONE)
        }
    }

然后为 ypur 创建一个处理程序 运行nable:

Handler handler = new Handler();

当您从服务器获得响应时,告诉处理程序等待 x 秒,然后 运行 运行nable

handler.postDelayed(r, 2000); //here it waits for 2 seconds (2000 mills)