2017-03-02 51 views
0

使用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

+0

你能提供一个展示问题的例子吗?棱镜不应该像显示自定义字体那样对这种或那种方式产生任何影响。 –

+0

我已经上传了一个项目来演示它,是的,我同意棱镜不应该产生影响,但正如我所说,我试图缩小它的范围,这些步骤适用于非Prism应用程序和Prism应用程序iOS的工作原理并非Android ¯\ _(ツ)_ /¯ – Paddy

回答

1

提供,问题似乎与您在项目中使用的Xamarin表单的版本一致。您的示例使用X.F 2.3.1.114,Xamarin的示例使用2.3.3.180。更新至少2.3.3.180可以解决您的示例中的问题。更新到Prism 6.3.0-pre2也有效(但仅仅是因为它将Xamarin表单更新为最新版本)。

+0

谢谢你,更新Xamarin.Forms确实解决了它♂️ – Paddy

相关问题