使用支持库26.1的XML字体:渲染问题

时间:2018-03-29 08:04:46

标签: android android-support-library android-xml

我决定使用Fonts in XML功能在我的应用中使用一个自定义字体。我确保完成以下工作:

  • 使用支持库26.1.0(因为我的目标是API级别19及以上)
  • Gradle文件同步
  • 字体直接以XML格式添加,而不是以编程方式添加
  • 相应地遵循指示,如链接
  • 中所述

一切正常,当我在虚拟设备中运行我的应用程序时,我可以看到Buttons上使用的自定义字体。

但是,在XML中应用自定义字体后,会弹出两个警告:

  • 布局保真度警告
  • 无法实例化一个或多个类

如何摆脱这些警告?如果我不能,他们可以安全地忽略吗?

App的Gradle文件(部分):

apply plugin: 'com.android.application'

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    compile "com.android.support:support-compat:26.1.0"
}

XML文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.ks.shakee.MainMenuActivity">

    <LinearLayout
        android:id="@+id/ll_mainmenu"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="64dp"
        android:layout_marginEnd="16dp"
        android:layout_marginStart="16dp"
        android:divider="@drawable/divider_vertical_invisible_medium"
        android:orientation="vertical"
        android:showDividers="middle"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <Button
            android:id="@+id/btn_timedgame"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/myfont"
            android:text="Timed Challenge"
            android:textSize="32dp" />

        <Button
            android:id="@+id/btn_bestscore"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/myfont"
            android:text="Best Score"
            android:textSize="32dp"
            tools:layout_editor_absoluteX="66dp"
            tools:layout_editor_absoluteY="231dp" />
    </LinearLayout>

</android.support.constraint.ConstraintLayout>

1 个答案:

答案 0 :(得分:0)

刚刚将我的Android Studio更新为3.1,并将我的Gradle文件更改为使用27.1。警告消失了。