Xamarin.Android - android:fontFamily 不起作用



我需要使用 android:fontFamily 更改 textView 字体。 问题是它给了我错误,我不知道为什么

我的代码:

<TextView
android:text="Arial font"
android:textSize="8pt"
android:fontFamily="@font/arial"
android:layout_marginTop="4pt"/>

我几乎尝试了一切:在 Assets 文件夹上添加了 Arial.ttf,在 Assets 中创建了一个字体文件夹,尝试更改属性,尝试在 android:fontFamily 中使用"arial.ttf"而不是"arial",但没有任何效果。

仅支持

API-26 及更高版本:

  • Resources/font目录中添加字体文件

  • 对于API-26+,仅支持使用android:fontFamily就可以了:

    android:fontFamily="@font/tastysushi"

但。。。对于 API 16 到 28+,您需要设置/使用 Android 支持库

来自 API-16+ 的支持

  • 添加Xamarin.Android.Support.Compat包(v26 或更高版本(

  • 如果在 AXML 布局中使用fontFamily,请添加Xamarin.Android.Support.v7.AppCompat包 (v26+((否则,可以通过编程方式分配字体系列并使用Activity子类(

  • 您的活动必须是AppCompatActivity的子类,才能使基于 AXML 的布局/AXMLapp:fontFamily属性起作用

  • Resources/font目录中添加字体文件

    |-Resources
    |  |-font
    |  |  |-tastysushi.ttf
    
  • 可选但方便,在目录中创建一个字体系列 xml 文件Resources/font(必须定义androidapp命名空间(

    <!-- Resource/font/sushi.xml -->    
    <?xml version="1.0" encoding="UTF-8" ?>
    <font-family 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <font
    android:fontStyle="normal"
    android:fontWeight="400"
    android:font="@font/tastysushi"
    app:fontStyle="normal"
    app:fontWeight="400"
    app:font="@font/tastysushi"
    />
    

    注意:您也可以将粗体和斜体font元素添加到字体系列中...并为每个字体分配来自同一字体系列的不同字体文件......

  • 在布局文件的顶部元素中添加app:命名空间:

    xmlns:app="http://schemas.android.com/apk/res-auto"

  • 现在,fontFamily属性必须用于使用app:命名空间

    app:fontFamily="@font/sushi"

注意:@font/可以引用实际字体文件或基于 xml 的字体系列文件

注意:您还可以在样式中嵌入字体,这样就不必使用字体系列填充每个 AXML 元素...

最新更新