![](/img/trans.png)
[英]Xamarin.Forms: User Interface working properly in UWP but not on the Android Part
[英]Xamarin.Forms fontawesome works on UWP but shows square on Android
我在Xamarin.Forms項目中添加了fontawesome,UWP字體看起來像預期的那樣,但是在android上卻是正方形的。 我已將build-action設置為AndroidAsset,但它不起作用。
在Android上,使用FontAwesome
有點麻煩。 這篇文章后面的代碼是關於如何以最簡單的方式使用Font Awesome的。 就像設置標簽一樣簡單。
我們使用一個自定義渲染器,該渲染器查看有問題的標簽,確定文本字段中是否存在一個字符,以及該字符的值是否為0xf000
或更高。 如果是這樣,我們將字體替換為FontAwesome
。
由於圖標全部以0xf000
或更高的開頭,因此自定義渲染器將確保使用正確的字體
[assembly: ExportRenderer(typeof(Label), typeof(AwesomeRenderer))]
namespace Awesome.Droid
{
public class AwesomeRenderer : LabelRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
var label = (TextView)Control;
var text = label.Text;
if(text.Length > 1 || text[0] < 0xf000)
{
return;
}
var font = Typeface.CreateFromAsset(Xamarin.Forms.Forms.Context.ApplicationContext.Assets, "fontawesome.ttf");
label.Typeface = font;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.