【问题标题】:Xamarin Progress dialog to show and hideXamarin 进度对话框显示和隐藏
【发布时间】:2017-11-14 12:40:52
【问题描述】:

我在 Xamarin 应用程序中显示进度视图时遇到了一些困难。我相信它与不同的线程有关。这是我的代码。

private void NavigateCommand()
    {
       using (UserDialogs.Instance.Loading("Verifying Credentials",null, null, true, MaskType.Black))
                {
                try
                    {
                    var authResult = Task.Run(async () => await _loginService
                                            .Login(Priority.Background, EmailAddress.Value, Password.Value)
                                                  .ConfigureAwait(false)).Result;

                        CacheToken(authResult);
                    }
                    catch { }
                }

            Device.BeginInvokeOnMainThread(() => UserDialogs.Instance.HideLoading());
            _navigationService.NavigateAsync("PageOnePage");
    }

所以现在发生的情况是,进度/加载视图直到执行完倒数第二行(即隐藏代码)后才会显示。它快速闪烁,然后消失。感谢您的帮助。

【问题讨论】:

    标签: xamarin xamarin.ios xamarin.forms


    【解决方案1】:

    这样的东西应该可以工作,因为它将您的 UserDialogs/ NavigateAsync 调用放在 UI 线程上,并将 Login/CacheToken 放在后台线程上:

    private void NavigateCommand()
    {
        Device.BeginInvokeOnMainThread(async () =>
        {
            using (UserDialogs.Instance.Loading("Verifying Credentials", null, null, true, MaskType.Black))
            {
                await Task.Run(async () =>
                {
                    var authResult = await _loginService.Login(Priority.Background, EmailAddress.Value, Password.Value);
                    CacheToken(authResult);
                });
                Device.BeginInvokeOnMainThread(() =>
                {
                    UserDialogs.Instance.HideLoading();
                    _navigationService.NavigateAsync("PageOnePage");
                });
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多