繁体   English   中英

如何在Android的Xamarin.forms上正确使用活动指示器?

[英]How can I use correctly the activity indicator on Xamarin.forms for Android?

我正在使用插件来显示应用程序正忙,但是在Android上,动画始终卡住。

例如,我在以下代码中使用它:

private async Task SelectWorkOrderItemAsync(WorkOrderLista WoLista) {
    if (WoLista == null) return;

    // show the loading
    Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Loading..");

    // get datas from DB
    WorkOrderDettaglio WoDett = await _WorkOrderService.GetDettaglioWorkOrder(WoLista.Guid_servizio);

    // this code opens another page with the datas extracted above
    await NavigationService.NavigateToAsync<DettaglioWoViewModel>(WoDett, Costanti.TipoPush.Normale, WoDett.NumWoAnno);

    // hide the loading
    Acr.UserDialogs.UserDialogs.Instance.HideLoading();
}

结果如下:

如您所见,几秒钟后,加载指示器将冻结。

如果我使用默认的ActivityIndi​​cator,则此行为是相同的。

在IOS上,一切正常。

如何正确使用它?

我目前没有要测试的Android设备/模拟器,并且无法在UWP上重现,但是您的服务调用在主线程上异步执行,如果您在Windows中执行服务调用,则不应阻止您的ActivityIndi​​cator工作线程。

// get datas from DB
WorkOrderDettaglio WoDett = null;
await Task.Run(async () => WoDett = await _WorkOrderService.GetDettaglioWorkOrder(WoLista.Guid_servizio));

必须将活动指示器(isVisibleProperty和isRunningProperty)绑定到ViewModel的bool属性,并且ViewModel必须实现

INotifyPropertyChanged的

是如何实现一点的绝佳解释。

如果在此答案中需要覆盖,则可以找到实现方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM