使用Xamarin Forms(2.3.1)和Prism(6.2)为iOS和Android开发应用程序时,我们很难让自定义字体在Android上工作,但iOS已经精细。用Xamarin Forms和Prism在Android上显示的自定义字体
我们秉承the most recent documentation(即不使用自定义绘制),并似乎都在缩小到被涉及棱镜......
为了简化问题,我们做了一个新的窗体应用程序,添加了龙虾正规。从Xamarin demo到Android资产和iOS资源并确保其财产TTF分别为AndroidAsset和BundleResource,然后在默认XAML页面中加入:
<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。
如果我们创建一个新的棱镜统一的应用中添加的字体文件,检查(其中默认正确)的属性并插入MainPage.xaml中的iOS标签将使用自定义字体,但Android将只使用标准字体。
有一个known issue with custom fonts in UWP and WP apps但这似乎没有关系。
所有的测试都在iOS模拟器和Android模拟器上。
更新 按照丹S.的评论我已经上传了一个项目,以显示与iOS中,但没有Android版的自定义字体最小的棱镜的应用:基于解决方案,您sample project
你能提供一个展示问题的例子吗?棱镜不应该像显示自定义字体那样对这种或那种方式产生任何影响。 –
我已经上传了一个项目来演示它,是的,我同意棱镜不应该产生影响,但正如我所说,我试图缩小它的范围,这些步骤适用于非Prism应用程序和Prism应用程序iOS的工作原理并非Android ¯\ _(ツ)_ /¯ – Paddy