如何在 react-native / expo 中使用 Dimensions 获得真实的屏幕分辨率并设置应用程序的样式?

How to get real screen resolution using Dimensions in react-native / expo and style the app?

我正在开发 react-native/expo 应用程序。 昨天我到了造型阶段,了解到

Dimensions.get('window').width

returns 我的设备实际宽度的一半(一个 android,一个 iPad),但是模拟 android 设备的实际宽度。 它看起来像物理设备 运行 某些 half/half 分辨率模式下的应用程序。

不用说,它完全破坏了我为应用程序设置样式的想法,因为我使用 EStyleSheet(react-native-extended-stylesheet)构建动态样式,这取决于 Dimensions 获得的值以及 maxWidth 没有多大意义,是吗?

是否有任何方法可以将 react-native/expo 应用强制为 运行“全分辨率”?

谢谢!

如果您正在考虑为什么在设备的屏幕分辨率为 1080p 时得到 420 宽度,答案是 React Native 使用与密度无关的像素作为测量单位。尺寸 api 也是 returns 基于像素的密度独立值,而不是屏幕分辨率。

您唯一应该担心的是状态栏和导航栏。 您可以阅读这些答案以获得明确的答案:

(此外,React Native 不希望您再使用 Dimensions api。您可以使用 useWindowDimensions,因为它会在屏幕旋转时发生变化等)

Height and Width - React Native Docs

Pixel density

Android Navigation Bar height React-Native

useWindowDimensions - React Native Docs