xamarin 应用程序标记关于不支持标记的错误

问题描述

已完成在 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>

显示了购物车图片和购物车中的商品数量...

然而在 IOS 上它只显示项目的数量...

我在主网格内的 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