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