Xamarin-ActivityIndicator需要时间显示
我有一个带钥匙的钮扣Xamarin-ActivityIndicator需要时间显示,xamarin,xamarin.forms,activity-indicator,Xamarin,Xamarin.forms,Activity Indicator,我有一个带钥匙的钮扣 await this.Navigation.PushModalAsync 该命令在单击时运行。 我想在按下按钮时显示ActivityIndicator,这是我的按钮单击命令: async void ButtonClicked(object sender, EventArgs e) { actCentros.IsRunning = true; await this.Navigation.PushModalAsync(...); actCentros.
await this.Navigation.PushModalAsync
该命令在单击时运行。
我想在按下按钮时显示ActivityIndicator,这是我的按钮单击命令:
async void ButtonClicked(object sender, EventArgs e)
{
actCentros.IsRunning = true;
await this.Navigation.PushModalAsync(...);
actCentros.IsRunning = false;
}
这需要大约1秒的时间来显示。如果没有PushModalAsync
,它会在单击时显示
为什么会发生这种情况?我发现有效的方法是将活动指示器的
IsRunning
属性绑定到基于ViewModel的布尔INotifyPropertyChanged
属性,例如“IsProcessing”,并在命令的Execute delegate方法开始时将其设置为true,在方法的末尾返回false。我没有注意到这种方法在单击绑定到命令的按钮时有任何延迟。这是不够的代码,但从我看到的情况来看,您的按钮按下是一种异步方法,任何与UI相关的更改都必须在主线程上调用。必须在UI线程上调用ActivityIndicator。我假设您有轻微延迟的原因是,因为您的代码在完成后等待执行方法中的内容,此时ActivityIndicator显示.Tx。你有什么解决办法吗?动画就是诀窍,正如上面解释的,你能添加足够的代码来重现这个问题吗?