首页 > 解决方案 > 如何更改 Secondary Toolbaritem Xamarin Forms 的图标

问题描述

我正在尝试将自定义图标设置为 ContentPage 上的“次要”订单工具栏,但该图标每次在 Android 上都呈现为 3 点 /dotted-list 图标(尚未部署到 iOS,没有理由怀疑有什么不同)。

我的代码很简单

<Toolbaritem Order="Secondary"
Icon="img.png"/>

我想保留Toolbaritem的下拉列表功能。

标签: c#androidvisual-studioxamlxamarin.forms

解决方案


那个 3 点图标(Kebab 菜单图标)是一个菜单图标。Order="Secondary"将工具栏项移动到辅助表面,在 Android 上,辅助表面是烤肉串菜单。微软文档对辅助表面上的工具栏项目有这样的说法:

将 Order 属性设置为 Secondary 的 ToolbarItem 对象中的图标行为在各个平台上不一致。避免在二级菜单中显示的项目上设置 IconImageSource 属性。

在 Android 上,项目放置在 kebab 菜单中并且不显示图标,而在 iOS 上,辅助项目放置在主工具栏下方并显示图标。我不确定 UWP,我目前没有办法测试它。如果您想要的是与所有平台上的图标保持一致的外观,您将必须实现自己的工具栏。

编辑:这个Xamarin.Forms git 问题正是要求该功能。问题似乎很旧,但它仍然打开并且仍然有一些活动,所以也许有一天可以将图标添加到 android 上的辅助 ToolbarItem。与此同时,他们建议了一种解决方法- 使用ToolbarItem带有“Kebab menu”徽标的主菜单,当单击该徽标时,可以切换IsVisible自定义ListView菜单上的属性,该菜单位于RelativeLayout您的菜单应位于的位置。


推荐阅读