react-native - 如何在 react-native / expo 中使用Dimensions获得真实的屏幕分辨率并设置应用程序样式?
问题描述
我正在开发一个 react-native/expo 应用程序。昨天我到了造型阶段才知道
Dimensions.get('window').width
返回我的设备(一个 android,一个 iPad)的实际宽度的一半,但模拟的 android 设备的实际宽度。它看起来像物理设备以某种半/半分辨率模式运行应用程序。
不得不说,它完全破坏了我对应用程序进行样式设置的想法,因为我使用 EStyleSheet (react-native-extended-stylesheet) 进行动态样式构建,这取决于Dimensions 获得的值以及诸如maxWidth之类的东西不会做很多有道理,是吗?
有什么方法可以强制 react-native/expo 应用程序以“全分辨率”运行?
谢谢!
解决方案
如果您正在考虑为什么在设备的屏幕分辨率为 1080p 时获得类似 420 的宽度,答案是 React Native 使用与密度无关的像素作为测量单位。并且Dimensions api 还返回基于密度独立像素的值,而不是屏幕分辨率。
您唯一应该担心的是状态栏和导航栏。您可以阅读这些答案以获得明确的答案:
(React Native 也不希望您再使用Dimensions api。您可以使用useWindowDimensions,因为它会在屏幕旋转等时发生变化。)
推荐阅读
- php - 临时文件到新文件夹
- .net - 如何使用命令行的凭据将配置文件发布到 IIS?
- excel - Power Query 中的条件列
- django - 尝试编辑页面时 Wagtail 页面反向错误
- python - 在openCV中使用单应性将PNG粘贴到图像上
- ios - 如何安全使用 iOS 广告标识符?
- react-native - 如何在 React Native 拖放组件中将视图定义为拖放区?
- mysql - 为什么正则表达式 setminus 运算符不适用于 MySQL?
- r - 包“fpc”不可用(对于 R 版本 3.5.3)
- sql - 将 join 与 delete 语句一起使用时出现语法错误