问题描述
已完成在 android 上构建我的 xamarin 应用程序,现在转移到 ios 进行测试。
Obv 布局不同所以尝试整理一下。
在安卓上...
<ContentPage.toolbaritems>
<ToolbarItem Name="shoppingCartImg" Icon="shoppingCartImg.png" Priority="0" Order="Primary" Activated="ShoppingCartpressed"/>
<ToolbarItem Text="{Binding NoItemsInShoppingCart}" Priority="0" Order="Primary" Activated="ShoppingCartpressed"/>
</ContentPage.toolbaritems>
我在主网格内的 stackLayout 中添加了 <Image Source="shoppingCartImg.png"/>
并且它出现了,所以问题出在工具栏项上。我在网上找到将代码放在单独的标签中,如下所示:
<ContentPage.Content>
<OnPlatform x:TypeArguments="View">
<OnPlatform.iOS>
...
</OnPlatform.iOS>
<OnPlatform.Android>
...
</OnPlatform.Android>
<OnPlatform.WinPhone>
...
</OnPlatform.WinPhone>
</OnPlatform>
<ContentPage.toolbaritems>
<OnPlatform x:TypeArguments="View">
<OnPlatform.iOS>
<Image Source="shoppingCartImg.png">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="OnImageNaMetapped"
NumberOfTapsrequired="1" />
</OnPlatform.iOS>
<OnPlatform.Android>
<ToolbarItem Name="shoppingCartImg" Icon="shoppingCartImg.png" Priority="0" Order="Primary" Activated="ShoppingCartpressed"/>
</OnPlatform.Android>
</OnPlatform>
<ToolbarItem Text="{Binding NoItemsInShoppingCart}" Priority="0" Order="Primary" Activated="ShoppingCartpressed"/>
</ContentPage.toolbaritems>
但这会标记 .android 标签内的 toolbarItem 的错误
属性“android”不支持“toolbaritem”类型的值。无法分配指定的值。以下类型应为“查看”
解决方法
我已经在 Xamarin.forms 的 Android 和 iOS 中检查了下面的 Xaml。它可以很好地显示图标。
<ContentPage.ToolbarItems>
<ToolbarItem Name="shoppingCartImg" Icon="shoppingCartImg.png" Priority="0" Order="Primary" Activated="ShoppingCartPressed"/>
<ToolbarItem Text="{Binding NoItemsInShoppingCart}" Priority="0" Order="Primary" Activated="ShoppingCartPressed"/>
</ContentPage.ToolbarItems>
请检查图标路径。你有没有在ios中设置图标(shoppingCartImg.png)?如果添加与 shoppingCartImg
同名的图片,它会在没有具体实现的工具栏中显示该图片。
您可以尝试将图像添加到资产目录图像集。 https://docs.microsoft.com/en-us/xamarin/ios/app-fundamentals/images-icons/displaying-an-image?tabs=windows#adding-images-to-an-asset-catalog-image-set