2017-03-02 52 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

相關問題