React Native -如何在字体缩放后检测字体大小?

72qzrwbm  于 2023-04-22  发布在  React
关注(0)|答案(3)|浏览(189)

我需要检测什么是字体缩放后的文本组件的字体大小。假设我有一个字体大小为18px的文本组件

<Text style={{fontSize: 18}}>My Text</Text>

用户通过操作系统辅助功能设置设置了一个大字体。现在我的文本已经用更大的字体大小呈现(超过18px)。我知道我可以使用allowFontScaling={false},但我不想失去文本辅助功能。我看到React native有一个API可以获取字体大小PixelRatio.getFontScale(),但它不适用于iOS
返回字体大小的比例因子。这是用于计算绝对字体大小的比率,因此任何严重依赖该比率的元素都应该使用该比率进行计算。
如果未设置字体比例,则返回设备像素比率。
目前这仅在Android上实现,并反映了在设置〉显示〉字体大小中设置的用户首选项,在iOS上它将始终返回默认像素比例。
有什么想法吗

ivqmmu1c

ivqmmu1c1#

react-native-device-info提供了一个函数getFontScale(),它似乎可以在Android和iOS中工作。

ljsrvy3e

ljsrvy3e2#

可以使用useWindowDimensions

import { useWindowDimensions } from 'react-native';

const MyScreen = ({ navigation }) => {
   useWindowDimensions().fontScale // you will get current scale
}
8yparm6h

8yparm6h3#

根据documentationPixelRatio.getFontScale()应该适用于Android和iOS

相关问题