我需要检测什么是字体缩放后的文本组件的字体大小。假设我有一个字体大小为18px的文本组件
<Text style={{fontSize: 18}}>My Text</Text>
用户通过操作系统辅助功能设置设置了一个大字体。现在我的文本已经用更大的字体大小呈现(超过18px)。我知道我可以使用allowFontScaling={false}
,但我不想失去文本辅助功能。我看到React native有一个API可以获取字体大小PixelRatio.getFontScale()
,但它不适用于iOS
返回字体大小的比例因子。这是用于计算绝对字体大小的比率,因此任何严重依赖该比率的元素都应该使用该比率进行计算。
如果未设置字体比例,则返回设备像素比率。
目前这仅在Android上实现,并反映了在设置〉显示〉字体大小中设置的用户首选项,在iOS上它将始终返回默认像素比例。
有什么想法吗
3条答案
按热度按时间ivqmmu1c1#
react-native-device-info提供了一个函数getFontScale(),它似乎可以在Android和iOS中工作。
ljsrvy3e2#
可以使用
useWindowDimensions
8yparm6h3#
根据documentation
PixelRatio.getFontScale()
应该适用于Android和iOS