簡體   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