在开发react-native时,用户设置了系统的字体大小之后,导致自己的APP布局紊乱,甚至有些内容会被切掉/隐藏,这对于用户来讲,是非常不好的用户体验。
在react-native中用来显示文字的,一般会用到两个组件:Text和TextInput。所以,我们只要针对这两个组件做好工作,那就基本上解决了字体大小适配的问题
Text和TextInput它们有一个共同属性:
allowFontScaling
这个属性在react-native官方文档中解释如下:
Specifies whether fonts should scale to respect Text Size accessibility settings. The default is true.
意思是:
是否随系统指定的文字大小变化而变化。默认值为true
这给我提供了解决方案,只要我们给Text和TextInput的属性allowFontScaling设置值为false,那么文字大小就不会随系统字体大小的变化而变化。
直接设置Text和TextInput的allowFontScaling属性默认值为false,真正实现了一劳永逸。
TextInput.defaultProps = Object.assign({}, TextInput.defaultProps, {defaultProps: false})
Text.defaultProps = Object.assign({}, Text.defaultProps, {allowFontScaling: false})