Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
工具栏项在iOS中看起来不正确_Ios_Iphone_Xamarin.forms_Freshmvvm_Toolbaritems - Fatal编程技术网

工具栏项在iOS中看起来不正确

工具栏项在iOS中看起来不正确,ios,iphone,xamarin.forms,freshmvvm,toolbaritems,Ios,Iphone,Xamarin.forms,Freshmvvm,Toolbaritems,我有一个带有FreshMvvm的Xamarin.Forms应用程序,我正在尝试使用辅助工具栏项。以下是我的PageModel代码的一部分: public override void Init(object initData) { CurrentPage.ToolbarItems.Add(new ToolbarItem() { Text = "About LATICRETE", Command = AboutCommand, Priority = 0, Order = Tool

我有一个带有FreshMvvm的Xamarin.Forms应用程序,我正在尝试使用辅助工具栏项。以下是我的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上,情况却大不相同:


正如您所看到的,没有汉堡包按钮,所有工具栏项目都水平放置在彼此相邻的位置,并且由于它们不适合屏幕的宽度,因此它们重叠。我意识到这是iOS的正常行为,但这对我来说是不可接受的。有什么方法可以修复它吗?

在iOS上,导航栏下方的
辅助
项目菜单显示为一个水平列表

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

这是一个样品,你可以参考一下

Android中的效果:

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

1) 第一页包含工具栏项:

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


谢谢您的回答。我试图应用这个解决方案,但有一个问题。我在示例的共享项目CustomToolbarContentPage中看到了从IAddToolbarItem派生的内容。我不清楚如何将其应用于我的申请。我不希望自定义渲染器影响我的Android和UWP项目,只影响iOS。您能帮忙吗?@DavidShochet您只需将
IAddToolbarItem
CustomToolbarContentPage
文件复制到您的共享项目中,将
rightboolbarmenucustomrenderer
TableSource
复制到您的ios项目中,自定义渲染器仅在ios中运行时才工作。但我看到CustomToolbarContentPage不仅存在于共享项目中,而且在MainPage.xaml中使用。这就是为什么我问如何将其应用于我的应用程序。或者它不是必需的?您应该让您的页面像中的主页一样扩展CustomToolbarContentPagesample@DavidShochet如果希望所有页面都具有相同的工具栏项,可以让这些页面扩展示例中的主页(它已经扩展了CustomToolbarContentPage,并且将是一个basepage),如果您只需要第一个页面有工具栏项,您只需要让您的第一个页面像主页一样扩展CustomToolbarContentPage