【发布时间】:2018-07-02 22:22:32
【问题描述】:
我有一个问题。我的活动指示器在我的图像完成从我的 api 加载之前消失。是因为对api的调用是异步的吗?如果是这样,在关闭我的活动指示器之前,如何确保通话已完成或图像已加载到屏幕上?
我的 XAML 中的活动指示器代码如下所示:
<ActivityIndicator IsRunning="{Binding IsBusy}"
IsVisible="{Binding IsBusy}"
VerticalOptions="Center"
HorizontalOptions="Center"/>
我的属性(位于视图模型库中):
private bool isBusy;
public bool IsBusy
{
get { return isBusy; }
set { SetProperty(ref isBusy, value); }
}
这是我设置属性的代码:
public override async void OnNavigatingTo(NavigationParameters navParams)
{
if(navParams.ContainsKey("query"))
{
var query = (string)navParams["query"];
IsBusy = true;
await DisplayImages(query);
IsBusy = false;
}
}
谢谢!
【问题讨论】:
-
Async/await 不会让它在后台线程上运行。
DisplayImages是如何实现的? -
检查 DisplayImages 方法是否包含 async 关键字。
-
只需调用一个 api 端点并将它获取的对象设置为它应该绑定到的属性。它确实包含 async 关键字。
-
你需要使用后台线程。
-
怎么样?有了这个? "System.Threading.Tasks.Task.Run(() => { //在这里添加你的代码。}).ConfigureAwait(false);"
标签: c# xamarin xamarin.forms activity-indicator