工具栏项在iOS中看起来不正确
我有一个带有FreshMvvm的Xamarin.Forms应用程序,我正在尝试使用辅助工具栏项。以下是我的PageModel代码的一部分:工具栏项在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
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