解决方法
在 activity 内重写getResources方法(Fragment中的界面也会生效),如此在 xml 和 java 代码使用 sp 字体单位都是正常的。一般在BaseActivity内重写。
Java写法
1 | /** |
Kotlin写法
1 | override fun getResources(): Resources { |
注意!网上很多地方写着使用config.setToDefaults();,实际上除了影响 app 内字体大小,还会影响很多地方的属性值。我们来看一下源码:
1 | /** |
因此,我们只需要把fontScale属性值设置成默认值1即可。