【问题标题】:open master page without navigation bar xamarin forms打开没有导航栏的母版页 xamarin 表单
【发布时间】:2016-05-18 08:43:23
【问题描述】:

现在很简单(我猜)...

(...) (旧文本吸)

下图显示了现在的列表页面导航栏。

这是目标(当然,丰富多彩):

(如前所述,不允许自定义渲染器和本机代码;该公司的想法是证明 xamarin 可以做所有本机可以,甚至更多,而不是本机 - 我会为读者)

非常感谢。

【问题讨论】:

  • 您编辑的问题虽然令人困惑,但看起来与您最初的问题并不完全相关。 Imo,您应该单独处理您的原始问题(我确实完全回答了它)。并为您的新问题开始一个新问题。请尝试更清楚地写出新问题,因为目前我不完全确定您到底在问什么。

标签: android xamarin.forms master-detail navigationbar


【解决方案1】:

我很久以前(大约一年)就这样做了,不幸的是我没有代码 sn-p。 所以我可以分享我的经验。

要隐藏导航栏,您可以使用

NavigationPage.SetHasNavigationBar(this, false);

我认为这个可以在详细页面中使用(正如您现在知道的那样,您将详细页面放在导航页面中)所以也许您可以将导航栏设置为 false(如果 Xamarin.Forms 仍然支持它)

这个link 展示了如何掌握 MasterDetailPage ,虽然它已经很老了,但它可能仍然有帮助。

另一个重要且更新的资源是 xamarin.forms here 的官方书籍。

当我们在我公司做一个母版详细页面时,有两种方法可以调用母版页

  1. 从左向右滑动
  2. 使用汉堡按钮

我没有声称有正确的答案,但也许我分享的内容会有所帮助。

【讨论】:

  • 非常感谢您的回答。在这种情况下,我已经隐藏了导航栏,并且我不能在母版页上允许手势,因为我还在此导航页面内使用了轮播页面,所以它可能会混淆(因为 Xamarin 也提醒) .当然,汉堡按钮允许打开母版页,但前提是显示在导航栏中;否则不行,这就是我的问题......
  • 我读到,如果您将主详细信息页面(或母版页)中的图标放入汉堡图像。那么这将解决问题。不知道我在哪里看到的
  • 哦,是的,你是对的,BraveHeart,我不是说你不是,而且它工作得很好,到目前为止我已经工作了,但我无法访问导航之外的图标栏,不应该在这里使用导航栏...刚刚更新了问题
  • 和 BraveHeart,我很抱歉,但在任何情况下我都不允许共享代码(另一项公司政策 - 你知道,他们有点反对开源,并且在所有可能的情况下都支持微软 -幸好我不在这儿太久了……)
  • 如果这个问题不允许你继续前进,你总是可以用有这个问题的代码做一个小的解决方案
【解决方案2】:

在 MasterDetail 模式中手动显示或隐藏母版页在 Xamarin.Forms 中非常容易。

您可以阅读 MasterDetailPage 的一个名为“IsPresented”的属性,您可以将其设置为 True 以显示母版页,设置为 False 以隐藏它。就像按下汉堡图标时一样,它会变成动画。

还有一个名为 IsPresentedChanged 的​​事件对于那些正在使用工具栏和/或手势来允许母版页打开的人很有用,因此他们可以在发生这种情况时得到通知。

【讨论】:

  • 非常感谢,非常有道理,尽管现在我必须提出另一个问题。如何访问 MasterDetailPage 之外的属性和事件?这是我目前的问题。我什至已经尝试过使用 App.cs 中的属性,但似乎无法掌握它。刚刚更新了问题
  • 很抱歉,我发现您编辑的问题非常令人困惑。您似乎正在使用一些复杂的自定义方式来存储页面引用和执行导航。您似乎也对 Xamarin.Forms 过于挑剔,尽管很明显您不了解使用它的最佳做法。如果您可以上传您的项目或改写您的问题,以便我真正理解您在问什么,我很乐意看看。
  • 已编辑。我为听起来令人困惑而道歉,这似乎很常见。无论如何,我的问题不是 xamarin 本身。我发现它很有启发性,并且是一个很好的解决方案,当您正在试验或只是编写儿童游戏或其他不需要专业的原生 UX 的东西时;但这正是这个应用程序所需要的,我的问题是即使 xamarin 团队也不在乎,我的问题是必须创造奇迹,因为他们多次声明有些东西不能简单地原生化,因为它们完全可以工作平台之间不同(但adm似乎无法得到它)......
【解决方案3】:

在这里找到了一个很好的解决方案:

即使它没有得到 xamarin 的批准,这个想法本身也很糟糕,并且完美地满足了我的需要。此外(实际上这是经常发生的事情)经理改变了主意,并允许我继续我的想法(甚至在知道谷歌实际上已经批准它作为可遵循的准则之前),其中包括创建一个自定义内容视图将用作底部导航栏,跨平台,使用轻击手势,并且此“选项卡”的每个项目都将更改主应用程序页面。

仍然,非常感谢您的所有回答,他们都帮了很多忙,只是我不允许对 xamarin 主控件进行很多更改,即使允许也不知道如何执行其中的大部分,并且来自原生 Android 背景,其中既不是架构,也不是你如何制作它(只要它运行良好)是遵循的原则,所以我仍然无法(并且不是真的愿意,考虑到我正在工作的项目类型with) 遵循微软特定的架构和准则...

【讨论】:

    猜你喜欢
    • 2016-08-31
    • 2017-08-30
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多