c# - 显示 Acr 用户对话框加载程序直到方法 xamarin 表单结束(android)

标签 c# android xamarin xamarin.android xamarin.forms

我在我的 xamarin 表单项目(android 和 ios)上使用 ShowLoading() Acr UserDialogs (v5.2.2),但我不会在启动 await 方法之前启动加载器并在结束时隐藏加载器。

我的代码在 ios 上运行,但在 android 上没有任何反应。

例子

async Task MyMethod()
{
  UserDialogs.Instance.ShowLoading("Loading",MaskType.Black);
  await ViewModel.LoadData();
  UserDialogs.Instance.HideLoading();
}

//InsideViewModel
public async Task LoadData();
{
await Task.Yield(); //without this code and ios doesnt work
//download data
}

我在 MainActivity.cs 上为 android UserDialogs.Init(this) 添加

有什么帮助吗? 谢谢

最佳答案

我编写了一些代码,速度非常快,并且与 Acr 用户对话框完美配合。

我使用依赖服务,这是我的完整示例代码。

PCL代码

    void CallService ()
    {
        Device.BeginInvokeOnMainThread (() => UserDialogs.Instance.ShowLoading ("Loading ...", MaskType.Black));
        Task.Run (async () => {
            await DependencyService.Get<IJsonMethods> ().Load ("SERVICE_URL");
        }).ContinueWith (result => Device.BeginInvokeOnMainThread (() => {

            UserDialogs.Instance.HideLoading ();

            }
        })
        );
    }

界面

public interface IJsonMethods
{
    Task Load(string url);
}

依赖服务

public async Task Load (string url)
    {
        try{
            using (var http = new HttpClient (new NativeMessageHandler ())) {
                var x = await http.GetAsync (new Uri (url));
                string res = await x.Content.ReadAsStringAsync ();
                MainViewModel.JsonList = JsonConvert.DeserializeObject<ArticleClass.RootObject> (res);
            }
        }catch (Exception ex) {
            MainViewModel.JsonList = null;
        }
    }

关于c# - 显示 Acr 用户对话框加载程序直到方法 xamarin 表单结束(android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37832860/

相关文章:

java - WCF Duplex 服务和 Android 客户端?任何可能性

c# - Proguard 错误 (Xamarin c#)

visual-studio-2013 - xamarin 应用程序无法在 Visual Studio 2013 中部署

ios - 如何在 IOS 7 中启用 USB 调试

C# 如何从另一个线程关闭主 UI 线程上的窗口窗体

c# - 按钮单击仅在 IE9 中的更新面板中不起作用

c# - 使用反射动态地将属性转换为其实际类型

c# - 如何将动态创建的按钮添加到动态创建的表中?

java - 在 SQLite 数据库中存储音乐标签

android - 打印 SQLite3 输出中的列名以及查询结果