我有一个进度对话框,需要3分钟来填写进度。
如果我较早收到服务器的响应,我想填写100%
的进度,然后将其禁用。
这是我的代码,但是没有将进度条填充到100%。
progressBar.setProgress(100);
progressBar.cancel();
progressBarLayout.setVisibility(View.GONE)
我有一个progress dialog
的单独布局,当我设置progressBar to 100
时将其禁用。可能是因为它无法呈现进度对话框。
答案 0 :(得分:2)
这里可能存在问题:
progressBar有一个setMax
方法。因此,例如,如果您使用progressBar.setProgress(1);
,则将最大值设置为2(例如),它将提高到50%。
如果您想始终将其完全填充,可以使用类似以下内容的
progressBar.setProgress(progressBar.getMax());
可能的问题: 我不确定是否应该在UIThread中更改此设置,因为您正在触摸UI,因此建议您进行检查。
希望这会有所帮助。
答案 1 :(得分:1)
您的代码将其填充到100%,但立即使其消失,因此您看不到它。尝试添加有关在只能从服务器获得确认后才开始的可运行状态中隐藏栏的代码
Runnable r = new Runnable() {
@Override
public void run() {
progressBarLayout.setVisibility(View.GONE)
}
}
然后为ypur runnable创建处理程序:
Handler handler = new Handler();
当您从服务器获得响应时,告诉处理程序等待x秒并运行可运行程序
handler.postDelayed(r, 2000); //here it waits for 2 seconds (2000 mills)