Xamarin.Forms fontawesome在UWP上工作,但在Android上显示广场
问题描述:
我已经在我的Xamarin.Forms项目中添加了fontawesome,在UWP字体看起来像预期的一样,但在android上它是方形的。我已经为AndroidAsset设置了构建操作,但它不起作用。Xamarin.Forms fontawesome在UWP上工作,但在Android上显示广场
答
在Android上,这是一个有点麻烦使用FontAwesome
。 post后面的代码是关于如何以最简单的方式使用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;
}
}
}
+0
谢谢!有用!希望它不需要UWP上的渲染器。很快,我将不得不在iOS上部署它,也许你知道iOS是否也需要自定义视图渲染器? –
你替换FontAwesome的字体时,有一个字符文本字段以及该字符的值是0xf000还是更高? –