自定义字体不带有Xamarin形式和棱镜在Android上显示



使用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文件的属性中,在编译操作中,我将其设置为嵌入式资源。它对我有用。

顺便说一句,对于可能的拼写错误表示歉意。我说英语不太好...

最新更新