【问题标题】:Xamarin.Forms implement AndHud and BTProgressHudXamarin.Forms 实现 AndHud 和 BTProgressHud
【发布时间】:2014-11-09 23:47:31
【问题描述】:

谁能指出一个 Xamarin.forms 示例,该示例使用 Android 的 AndHud 和 iOS 的 BTProgressHud(或类似的东西)?

我知道这里有 ACR-Xamarin-Forms 示例 https://github.com/aritchie/acr-xamarin-forms,但它太复杂了,完全超出了我的想象。

当然有更简单易懂的实现,但如果没有关于如何开始实现它的某种指导(对于 C# 和 Xamarin 新手)

提前致谢

【问题讨论】:

    标签: c# android ios xamarin.forms activity-indicator


    【解决方案1】:

    这就是我为 iOS 所做的。对于 Android,您需要做的就是创建一个使用 AndHud 而不是 BTProgressHud 的 IHud 实现。

    首先,在共享项目中创建一个接口

    public interface IHud
    {
        void Show();
        void Show(string message);
        void Dismiss();
    }
    

    接下来,在 iOS 项目中,使用 BTProgressHud 组件创建 IHud 的实现:

    [assembly: Dependency(typeof(Hud))]
    namespace project.iOS
    {
        public class Hud : IHud
        {
            public Hud ()
            {
            }
    
            public void Show() {
                BTProgressHUD.Show ();
            }
    
            public void Show(string message) {
                BTProgressHUD.Show (message);
            }
    
            public void Dismiss() {
                BTProgressHUD.Dismiss ();
            }
        }
    }
    

    最后,要从表单代码中使用它,只需这样做

        var hud = DependencyService.Get<IHud> ();
        hud.Show ("Loading Vehicles");
    
        // tasks...
    
        hud.Dismiss ();
    

    【讨论】:

    • 谢谢杰森,正是我所需要的
    • 我是 Xamarin 开发的新手。我必须将哪些文件从 BTProgressHUD 添加到我的项目中?请指定..
    • @Jason 我像上面一样实现了 BTProgressHUD,它工作正常,但在一个地方没有显示进度。该场景在登录时显示进度,成功时显示登录页面,在 OnAppearing 中我调用 ViewModel 中的一个方法,该方法调用 web 服务。在这种情况下,progressHUD 不会出现。你能在这里帮忙吗?我正在尝试创建一个示例来展示相同的内容,一旦完成就会发布。
    • 请发布一个新问题,不要附在 3 年前关闭的问题上
    【解决方案2】:

    我的答案与@jason 的答案非常相似,可以在这里找到:

    Loading Icon for layout screen Xamarin android

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      • 2020-03-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多