TextInput允许字体缩放为false

时间:2017-11-16 07:47:17

标签: reactjs react-native textinput

我正在使用React Native构建应用。问题是,当通过手机的设置更改字体大小时,字体大小也会在应用中发生变化,即使它们都设置了固定的字体大小。

例如,请考虑以下Text元素,字体大小为12:

<Text style={{fontSize: 12}}>Hello World</Text>

我发现这个问题有一个名为allowFontScaling的道具。所以,我转到App.js并添加以下行以禁用整个应用中的字体缩放:

Text.defaultProps.allowFontScaling = false;

完美无缺。但是,TextInput元素似乎没有实现相同的道具。当我尝试对TextInput执行相同操作时,出现以下错误:

  

undefined不是一个对象(评估   &#39; _reactNative.TextInput.defaultProps.allowFontScaling = false&#39;)

因此,我可以为Text设置固定的字体大小,但不能为TextInput设置固定的字体大小。这个问题有解决方法吗?我的本机版本是0.48.4。

提前致谢。

2 个答案:

答案 0 :(得分:2)

由于“ TextInput”的allowFontScaling属性在android上不起作用,因此iOS和android的解决方法都是-

  1. 从react-native导入PixelRatio
  2. 在TextInput样式中,将fontSize设置为{intendedFontSize / PixelRatio.getFontScale()}

它将修复您的fontSize,并且不会由于系统设置而更改

答案 1 :(得分:1)

一个简单的解决方案是在我的App.js文件顶部添加以下代码:

Text.defaultProps = {
  ...(Text.defaultProps || {}),
  allowFontScaling: false,
};
TextInput.defaultProps = {
  ...(TextInput.defaultProps || {}),
  allowFontScaling: false,
};

干杯。