You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Support Library 26.1实现XML字体:渲染问题

解决Fonts in XML的XML警告问题

嘿,我之前在项目里用Fonts in XML的时候也碰到过一模一样的情况——运行起来字体显示没问题,但XML编辑器里就是飘着警告,给你分享下我当时排查解决的思路:

常见警告1:属性兼容警告

如果你在XML里用的是android:fontFamily="@font/your_custom_font",那大概率会收到类似「该属性仅在API XX+生效」的警告。因为咱们用的是Support Library 26.1.0,要兼容API19+的话,应该改用Support Library提供的命名空间属性:

<!-- 替换成app命名空间的属性 -->
app:fontFamily="@font/your_custom_font"

记得要在布局根节点声明Support Library的命名空间:

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

常见警告2:资源未找到/缓存警告

如果警告是提示找不到字体资源,但运行时字体明明显示正常,那基本就是Android Studio的缓存闹的。可以试试这几个操作:

  • 点击菜单栏的File → Invalidate Caches...,然后选择Invalidate and Restart重启IDE
  • 清理项目构建缓存:Build → Clean Project,再Build → Rebuild Project

额外检查点

再确认下你的字体文件是不是放在res/font/目录下,文件名有没有符合Android资源命名规则(不能有大写字母、空格,只能用小写字母、数字、下划线),比如custom_font.ttf是对的,CustomFont.ttf就会出问题。

另外,如果你是在styles.xml里定义字体样式,也要确保用的是app:fontFamily而不是android:fontFamily,比如:

<style name="CustomButtonStyle" parent="Widget.AppCompat.Button">
    <item name="app:fontFamily">@font/your_custom_font</item>
</style>

这样操作后,XML里的警告应该就会消失啦!

内容的提问来源于stack exchange,提问作者wheatfield

火山引擎 最新活动