c# - 进度条可见性被忽略
问题描述
我试图在启动异步任务时显示进度条,并且在异步任务完成运行后,将进度条设置回不可见。由于某种原因,progressBar 没有响应更改可见性属性的代码。
Activity.RunOnUiThread(() =>
{
prog.Visibility = ViewStates.Visible;
});
Task<bool> createPickTask = Task.Run(() => Utils.createPick(firstBet, myBet, game));
bool createPickResult = createPickTask.Result;
if (createPickResult)
{
adapter.NotifyItemChanged(pos);
}
else
{
showErrorMessage();
}
Activity.RunOnUiThread(() =>
{
prog.Visibility = ViewStates.Gone;
});
解决方案
由于某种原因,progressBar 没有响应更改可见性属性的代码。
在这部分代码全部执行之前,代码不会在 UI 上生效。您可以尝试在任务中设置进度条可见性。例如:
private void Button_Click(object sender, System.EventArgs e)
{
Activity.RunOnUiThread(() =>
{
prog.Visibility = ViewStates.Visible;
});
Task<bool> createPickTask = Task.Run(/*async*/ () => {
//await Task.Delay(3000);
bool createPickResult = Utils.createPick(firstBet, myBet, game);
if (createPickResult)
{
adapter.NotifyItemChanged(pos);
}
else
{
showErrorMessage();
}
Activity.RunOnUiThread(() =>
{
prog.Visibility = ViewStates.Gone;
});
return createPickResult;
});
}
结果是:
推荐阅读
- python - Python网络爬虫不打印结果
- react-native - TouchableRipple onPress 不适用于反应导航
- authentication - Google BigQuery 上的数据库游标失败
- flutter - 在页面视图之间颤动淡入淡出动画
- angular - 有没有办法在构建(ng build)时排除文件夹,该文件夹存在于角度的资产文件夹中
- flask - 如何从 Flask 服务器正确地提供静态文件?
- typescript - Typescript 交集在 for... 循环列表中失败
- flutter - ListView.builder 里面的 futurebuilder 里面 Listview
- android - Android Studio Kotlin - 如何在文本中显示 2 位数字?
- javascript - 无法通过 JavaScriptObjCBridge 从 Cocos-2d 调用 Objective-C 方法