android - 反应原生道具allowFontScaling在android上不起作用
问题描述
我是react-native 的新手,如果我从设备设置中增加文本大小,我想修复应用程序所有屏幕中的文本大小,那么我尝试过的字体大小也应该相同:
Text.defaultProps.allowFontScaling=false;
在 android.index.js 和
public void adjustFontScale(Context context, Configuration configuration) {
configuration.fontScale =(float) 0.85;
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity = configuration.fontScale * metrics.density;
context.getResources().updateConfiguration(configuration, metrics);
}
在 mainactivity.jsoncreate()
之后调用super.onCreate();
并且从 AndroidManifest.xml 链接的自定义主题也不起作用
如果有人对此有其他解决方案,请帮助我。
它在 ios 设备上完美运行。
解决方案
(应该是评论,但我没有代表!)
似乎是字体缩放的一些错误,请在此处查看一些问题:
https://github.com/facebook/react-native/issues/18827
有人评论:
同样在 React Native 0.56.0 中设置 TextInput.defaultProps.allowFontScaling = false; 根本不起作用。
有人为此问题创建了一个库,但是我没有对此进行测试:
https://github.com/NelGarbuzova/react-native-stylized-placeholder
更新:我已经在我的 Android 模拟器上对此进行了测试,它的工作原理如下:
"react": "16.3.0-alpha.0",
"react-native": "0.55.0",
public render() {
return (
<View>
<Text allowFontScaling={false}>Text Scaling</Text>
<Text>No Text Scaling</Text>
</View>
)
}
Pixel 2(运行 28)上的结果如下
推荐阅读
- python - Python中具有自定义宽度的条形图
- python - 无法通过多个字符串值过滤掉列
- facebook - 用户完成潜在客户广告表单后,从像素中检索 Facebook 潜在客户 ID
- algorithm - 为什么系统重采样算法中的权重设置为 (1/N)?
- jquery - Laravel 中“选择的选择”的问题
- node.js - POST 请求的无效输入
- android - 如果我们使用不同类型的打印机,代码是否会发生变化?在使用蓝牙打印机(Android Java)打印条码时
- excel - 将一系列值与 Excel 中的单个值进行比较
- reactjs - React/React Native + Typescript 错误:找不到名称'INSERT FUNCTION NAME HERE'
- c++ - clang 与延迟模板解析、std::filesystem 和预编译头文件不兼容?