【问题标题】:Xamarin.Forms Prism master view not showing hamburger icon when popover visibleXamarin.Forms Prism 主视图在弹出窗口可见时不显示汉堡包图标
【发布时间】:2017-06-09 20:23:19
【问题描述】:

我已将 Xamarin.Forms Prism 应用程序设置为使用主从页面(MasterBehavior 设置为 Popover)进行导航,但我注意到我的 Prism 应用程序和示例 Xamarin.Forms 应用程序之间存在一些差异此页面 (https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/)。

在 Android 上,单击汉堡包图标会使母版在两个应用中滑出。在示例应用程序中,汉堡图标仍然可见。在我的 Prism 应用中,汉堡图标不可见,因为主视图占据了屏幕的整个高度,如下所示:

在 UWP 上,单击汉堡图标会使母版在两个应用中滑出。在示例应用程序中,汉堡图标仍然可见,并且主页的标题显示在顶部。在我的 Prism 应用中,这些项目都不可见,如下所示:

Prism 应用主视图的顶部和底部似乎还有某种类型的填充或空白区域。

这些差异是由 Prism 本身引入的,还是有办法配置 master 使其行为类似于 vanilla Xamarin.Forms 示例?


更新的屏幕截图

为了更好地展示我看到的问题,这里有更多截图。

Xamarin 示例、应用启动然后点击汉堡图标保持导航栏(带有汉堡图标)可见,主可见:

我的 Prism 应用、应用启动然后点击汉堡图标会使主视图占据整个屏幕高度:

【问题讨论】:

    标签: xamarin.forms prism master-detail prism-6


    【解决方案1】:

    为了在导航到页面时显示汉堡图标,您必须将详细信息包装在 NavigationPage 中。所以注册navigationPage进行导航,然后添加到你的导航URI中。

        protected override void OnInitialized()
        {
            NavigationService.NavigateAsync("MyMasterDetail/NavigationPage/MainPage");
        }
    

    看看这个沙盒示例:

    https://github.com/PrismLibrary/Prism/tree/master/Sandbox/Xamarin

    【讨论】:

    • 我目前有类似的设置,可以看到汉堡图标。屏幕截图来自我点击汉堡包图标并且主视图弹出框出现时......汉堡包图标不在那里再次点击并使主视图消失。
    • 我不确定我是否 100% 理解这个问题。也许您需要更改 MasterBehavior 属性。 Prism 对图标或修改页面的显示没有任何作用。所以这不是 Prism 问题developer.xamarin.com/guides/xamarin-forms/user-interface/…
    • 我添加了更多截图来显示我看到的差异。当我从我的 Prism 应用程序中取出我的主详细信息页面时,它就像在 Xamarin 的示例应用程序中一样工作,所以我不确定是否需要做一些与 Prism 相关的事情来保持导航栏在master 被显示,或者发生了其他事情。
    • 哦……现在我明白了。这可能是因为示例使用的是使用 FormsApplicationActivity 的旧版 Xamarin。新模板使用 FormsAppCompatActivity 和材料设计。如果您使用 Xamarin.Forms 模板创建一个新项目并尝试此操作,您将获得与使用 Prism 应用程序完全相同的行为。就像我说的,Prism 与滑出母版的行为无关。
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多