首页 > 解决方案 > 为什么 Acr.UserDialogs 不显示加载?

问题描述

我正在尝试在 Xamarin 上使用 Acr.UserDialogs 显示加载。我想显示加载,同时我将获得一些关于 WebService 的信息,但它不起作用,加载只是没有显示。

我该如何解决这个问题?

private async void OnClickAcessar(object sender, EventArgs args){
            var _loading = UserDialogs.Instance.Loading("Wait...", null, null, true, MaskType.Clear);

            try {                         

                //user object
                Usuario usuario = new Usuario();
                usuario.email = Email.Text;
                usuario.senha = Senha.Text;

                //webservice                
                Usuario u = UsuarioService.Login(usuario);  

                //alert                
                if (u != null && u.status == 1){                  
                    App.Current.MainPage = new MainView();
                }else{
                    await DisplayAlert("Error", "User or Password error", "OK");
                    Email.Focus();
                }

            }catch(Exception e){
                Debug.WriteLine("Erro: " + GetType().Name + " ->" + e.Message);
                await DisplayAlert("Erro", e.Message, "OK");
            }
            finally{                
                _loading.Hide();
            }    

        }

标签: c#xamarin

解决方案


您可以尝试使用Device.BeginInvokeOnMainThread在主线程上运行对话框,但是如果没有这种方法,它对我有用。或者您可以使用:

UserDialogs.Instance.ShowLoading("Wait...");
UserDialogs.Instance.HideLoading();

推荐阅读