使用Xamarin表格(2.3.1)和Prism(6.2)开发一个针对iOS和Android的应用程序,我们很难让自定义字体用于Android,但iOS很好。<<<<<<<<<<<<<<<<<<<<<<<<
我们遵循了最新的文档(即不使用自定义渲染),并且似乎已将其缩小到与棱镜相关的范围...
为了简化问题,我们制作了一个新表单应用程序,将龙虾regular.ttf从xamarin演示添加到Android资产和iOS资源,并确保其属性分别为Androidasset和Bundleresource,然后在默认的XAML页面中添加:<<<<<<<</p>
<Label Text="Hello Forms with XAML">
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<OnPlatform.iOS>MarkerFelt-Thin</OnPlatform.iOS>
<OnPlatform.Android>Lobster-Regular.ttf#Lobster-Regular</OnPlatform.Android>
<OnPlatform.WinPhone></OnPlatform.WinPhone>
</OnPlatform>
</Label.FontFamily>
</Label>
(也直接来自演示)
它适用于iOS和Android。
如果我们创建了一个新的Prism Unity应用程序,请添加字体文件,检查属性(默认正确)并将标签插入mainpage.xaml iOS将使用自定义字体,但Android只会使用标准字体。p> UWP和WP应用中的自定义字体有一个已知的问题,但这似乎并不相关。
所有测试都在iOS模拟器和Android模拟器上。
更新根据Dan S.的评论,我已经上传了一个项目,该项目显示了一个最小的Prism应用程序,该应用程序具有在iOS中使用但不起作用的自定义字体:sample Project
基于您提供的解决方案,问题似乎与您在项目中使用的Xamarin Forms的版本有关。您的样本使用X.F 2.3.1.114,Xamarin的样本使用2.3.3.180。更新至至少2.3.3.180可以在样本中解决问题。更新到Prism 6.3.0-pre2也有效(但这仅是因为它将Xamarin表单更新为最新版本)。
这个问题使我发疯,因为无论我尝试什么,字体都会显示在我的UWP应用程序中,但不会在我的Android应用程序中显示。
我找到了解决方案。这是愚蠢的,如果字体文件本身被命名为" myfont.ttf",而不是" myfont.ttf"(请注意,文件扩展名的资本化差异),则在Android应用程序中不会发生错误,但是字体not not not not'T出现。当我将文件扩展名的情况更改为较低的情况,重建和重新部署,好像是魔术一样,字体出现了!
希望其他人阅读这篇文章,这有助于他们克服这个愚蠢的障碍...
我也遇到了这个错误,我所做的只是。
在.ttf
文件的属性中,在编译操作中,我将其设置为嵌入式资源。它对我有用。
顺便说一句,对于可能的拼写错误表示歉意。我说英语不太好...