无法让 FontAwesome 5 与 Xamarin Forms、iOS 和 Android 一起使用

Ala*_*an2 4 xamarin font-awesome xamarin.forms

我尝试按照我能找到的所有教程进行操作,并且最接近的是以下教程:

https://github.com/coolc0ders/FontAwesome5XamarinForms

但是所有出现的都是问号而不是图标,甚至上面的示例在我运行时对我也不起作用。

我的 XML 看起来像这样:

<Label Text="&#xf249;"  FontSize="20" Grid.Column="0" >
   <Label.FontFamily>
      <OnPlatform 
         x:TypeArguments="x:String"
            Android="Font Awesome 5 Free-Regular-400.otf#Font Awesome 5 Free Regular" 
            iOS="Font Awesome 5 Free" />
   </Label.FontFamily>
</Label>
Run Code Online (Sandbox Code Playgroud)

我现在有一些问题。

  • 我是否需要将 FontFamily 设置为“FontAwesome”
  • 对于 Android 和 iOS,我应该使用 .ttf 文件还是 .otf 文件
  • 对于 iOS,我是否需要编辑 info.plist,如果需要,我该怎么做?
  • 我应该指定我的图标喜欢"&#xf249;"还是喜欢"\uf004"
  • 对于 Android 和 iOS d0,我需要将字体文件设置为“复制到输出目录”
  • 我如何找出字体的名称?我将其设置为“Font Awesome 5 Free”,但这只是复制示例,我也无法使其正常工作。
  • 我应该为 iOS="" 指定什么,应该是文件名减去 .ttf(或 .otf)吗?Android= 怎么样?

对不起,如果这些问题看起来很基本,但很长一段时间后我无法显示图标。所有出现的都是 ? 除了不起作用的示例之外,我似乎找不到任何地方可以解释如何为 FontAwesome 5 和 Xamarin 执行此操作。

Dan*_*iel 5

FontAwesome 5 比 FontAwesome 4 稍微复杂一些,因为您有 3 组字体。我已经为 font awesome 5 pro 做了这个。

我是否需要将 FontFamily 设置为“FontAwesome”

对于iOS版,您可以设置fontfamilyFont Awesome 5 Brands,如果你使用的品牌树立,或者Font Awesome 5 Pro,如果你使用的其他3套中的任何一个。目前,您一次只能使用一组。我会给你另一个答案,这样你就可以在同一个应用程序中使用这 3 套。

对于Android,这是我的开关:

switch (awesomeStyle)
            {
                case AwesomeStyle.Brands:
                    fontFile = "fa-brands-400.ttf#Font Awesome 5 Brands";
                    break;
                case AwesomeStyle.Light:
                    fontFile = "fa-light-300.ttf#Font Awesome 5 Pro";
                    break;
                case AwesomeStyle.Regular:
                    fontFile = "fa-regular-400.ttf#Font Awesome 5 Pro";
                    break;
                case AwesomeStyle.Solid:
                    fontFile = "fa-solid-900.ttf#Font Awesome 5 Pro";
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
Run Code Online (Sandbox Code Playgroud)

对于 Android 和 iOS,我应该使用 .ttf 文件还是 .otf 文件

我使用 .ttf 文件。

对于 iOS,我是否需要编辑 info.plist,如果需要,我该怎么做?

是的。将以下键添加到您的info.plist文件中。仅在轻、常规或实心之间添加一根绳子。

<key>UIAppFonts</key>
<array>
    <string>fa-brands-400.ttf</string>
    <string>fa-light-300.ttf</string>
    <string>fa-regular-400.ttf</string>
    <string>fa-solid-900.ttf</string>
</array>
Run Code Online (Sandbox Code Playgroud)

我应该指定我的图标像“”还是像“\uf004”

在 xaml 中,您使用"&#xf249;"版本。在 C# 中,您使用"\uf004"版本。

对于 Android 和 iOS d0,我需要将字体文件设置为“复制到输出目录”

我如何找出字体的名称?我将其设置为“Font Awesome 5 Free”,但这只是复制示例,我也无法使其正常工作。

我给了你上面的名字。否则,您应该使用字体编辑器来查找名称。在 Windows 中,您可以在字体文件的属性中找到名称,但是信息太多,您应该忽略标题的最后一个字(在详细信息选项卡中)。

我应该为 iOS="" 指定什么,应该是文件名减去 .ttf(或 .otf)吗?Android= 怎么样?

看上面。