首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin Forms Exrin框架将容器作为Modal?

Xamarin Forms Exrin框架将容器作为Modal?
EN

Stack Overflow用户
提问于 2017-03-07 23:20:25
回答 1查看 220关注 0票数 1

我一直在使用我喜欢的Exrin Xamarin表单框架。

我来到一个阻滞剂,在那里我想把一个容器作为一个模态。有人知道怎么做吗?我找不到任何例子,也找不到如何将容器作为Modal推送的最佳方法。

看看Exrin代码,可能需要更改BaseStack.cs,创建一个NavigationModal ResultType,生活方式,这样它就不会影响内存容器中已经存在的.?

还有其他想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 23:25:27

Exrin及其栈背后的想法是,不需要使用Modal。Modals的唯一原因是,您不能只按下从现有页面上返回的页面并将其放在现有页面的顶部。

这里推荐的方法是创建一个新的Stack并导航到它。然后,在完成后返回到前一个堆栈。它的行为方式与Modal相同,但您不需要实际使用Modal。

更新

如果您必须有一个模式,而支持转换的其他方式发挥作用,您可以修改您的NavigationProxy。替换以下2项职能。

代码语言:javascript
复制
 public async Task PopAsync()
    {
        if (_page.Navigation.ModalStack.Count > 0)
        {
            var page = _page.Navigation.ModalStack[0];
            _page_Popped(null, new NavigationEventArgs(page));
            await _page.Navigation.PopModalAsync();

        }
        else
            await _page.PopAsync();
    }

    public async Task PushAsync(object page)
    {
        var xamarinPage = page as Page;

        if (xamarinPage == null)
            throw new Exception("PushAsync can not push a non Xamarin Page");

        if (page is ExrinSample.View.AboutView)
            await _page.Navigation.PushModalAsync(xamarinPage);
        else
            await _page.PushAsync(xamarinPage);
    }

当然,这是手动引用代理中的特定页面。如果您想清理它,可以在Stack中添加一些方法来列出具有模态的页面,并在需要时使用该列表推送到模态,而不是直接将页面名称放在代理中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42660205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档