【问题标题】:ToolbarItems do not look right in iOSToolbarItems 在 iOS 中看起来不正确
【发布时间】:2020-04-22 02:22:28
【问题描述】:

我有一个带有 FreshMvvm 的 Xamarin.Forms 应用程序,并且正在尝试使用辅助 ToolbarItems。这是我的 PageModel 代码的一部分:

  public override void Init(object initData)
  {
      CurrentPage.ToolbarItems.Add(new ToolbarItem() { Text = "About LATICRETE", Command = AboutCommand, Priority = 0, Order = ToolbarItemOrder.Secondary });
      CurrentPage.ToolbarItems.Add(new ToolbarItem() { Text = "Call LATICRETE", Command = CallCommand, Priority = 0, Order = ToolbarItemOrder.Secondary });
      CurrentPage.ToolbarItems.Add(new ToolbarItem() { Text = "Email Technical Support", Command = EmailTechSupportCommand, Priority = 0, Order = ToolbarItemOrder.Secondary });
      CurrentPage.ToolbarItems.Add(new ToolbarItem() { Text = "Visit LATICRETE Website", Command = VisitWebsiteCommand, Priority = 0, Order = ToolbarItemOrder.Secondary });

对于 Android,按下汉堡按钮后,菜单看起来像我期望的那样:

但在 iPhone 上,情况就完全不同了:

如你所见,没有汉堡按钮,所有的 ToolbarItems 水平并排放置,并且由于它们不适合屏幕的宽度,因此它们重叠。我意识到这是 iOS 的正常行为,但我无法接受。有什么办法可以解决吗?

【问题讨论】:

    标签: ios iphone xamarin.forms freshmvvm toolbaritems


    【解决方案1】:

    在 iOS 上,Secondary 项目菜单作为水平列表显示在导航栏下方。

    如果你想达到安卓中的效果,你可以创建一个自定义的PageRenderer

    这是一个示例,您可以参考iOSSecondaryToolbarMenubar

    Android中的效果:

    ios 中的效果(您可以更改渲染器中的图标):

    1) 第一页有工具栏项:

    2) 所有页面都有工具栏项:

    【讨论】:

    • 感谢您的回答。我正在尝试应用此解决方案,但有一个问题。我在从 IAddToolbarItem 派生的示例共享项目 CustomToolbarContentPage 中看到。我不清楚如何将它应用到我的应用程序中。我不希望那个自定义渲染器影响我的 Android 和 UWP 项目,只影响 iOS。你能帮忙吗?
    • @DavidShochet 您只需将IAddToolbarItemCustomToolbarContentPage 文件复制到您的共享项目,并将RightToolbarMenuCustomRendererTableSource 复制到您的ios 项目,自定义渲染器仅在您在 ios 中运行。
    • 但我看到 CustomToolbarContentPage 不仅存在于共享项目中,而且在其 MainPage.xaml 中使用。这就是为什么我问我如何将它应用到我的应用程序中。还是没有必要?
    • 你应该让你的页面像示例中的 MainPage 一样扩展 CustomToolbarContentPage
    • @DavidShochet 如果您希望所有页面都具有相同的工具栏项目,您可以让页面扩展示例中的 MainPage(它已经扩展了 CustomToolbarContentPage,它将是一个基本页面),如果您只需要第一页有工具栏项,你只需要让你的第一页像MainPage一样扩展CustomToolbarContentPage即可。效果如上
    猜你喜欢
    • 2023-03-18
    • 2021-06-10
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 2021-09-22
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多