我有一个进度对话框,需要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());
可能的问题:我不确定你是否应该在UIThread中更改这一点,因为你正在触摸UI,我建议你检查一下
希望这能有所帮助。
您的代码会将其填充到100%,但会立即使其消失,因此您看不到它。请尝试在从服务器获得确认后才开始的可运行程序中添加有关使您的栏不可见的代码
Runnable r = new Runnable() {
@Override
public void run() {
progressBarLayout.setVisibility(View.GONE)
}
}
然后为ypur可运行创建一个处理程序:
Handler handler = new Handler();
当你从服务器得到响应时,告诉处理程序等待x秒并运行可运行的
handler.postDelayed(r, 2000); //here it waits for 2 seconds (2000 mills)