【发布时间】:2018-01-22 06:59:16
【问题描述】:
我的活动中有一个进度条。
当我点击按钮时,我想做点什么。我尝试使用此代码(按下按钮时的代码)模拟此过程:
void btn_clicked(object sender, EventArgs e){
int progressStatus = 0;
while (progressStatus < 100)
{
progressStatus += 1;
progressBar.SetProgress(progressStatus, false);
Thread.Sleep(1000);
}
}
我尝试执行该代码,但它没有更新进度。
但是当我做这样的事情时:
void btn_clicked(object sender, EventArgs e){
progressBar.SetProgress(progressBar.progress += 1, false);
}
有效。
我必须在 RunOnUiThread、RunOnUiThread 或 Handler.Post 中尝试运行设置进度,但是当我必须在我的方法中循环时。它使进度条没有更新。
在 While 循环中,我尝试了这个:
while (progressStatus < 100)
{
progressStatus += 1;
// I also have try to change "RunOnUIThreadSynchronous"
// with Handler.Post" or "RunOnUIThread"
this.RunOnUIThreadSynchronous(() =>{
progressBar.SetProgress(progressStatus, false);
});
Thread.Sleep(1000);
}
有人可以帮我吗?
【问题讨论】:
-
使用第一种方法 while 循环甚至会在您眨眼之前结束,您将在
ProgressBar上看到的进度将是 99 。只需使用Thread延迟尝试即可。
标签: android xamarin progress-bar android-progressbar