Dimensions.get('screen')。宽度在iPad模拟器中返回错误的宽度?

时间:2017-08-11 06:06:16

标签: reactjs react-native react-native-ios

Dimensions.get('screen').width320返回宽度iPad simulator

  

无论我尝试在模拟器中使用哪种iPad设备,它都会返回   一个320 x 480的屏幕和窗口分辨率

我在这里做错了什么,或者这只是在模拟器中不能正常工作?

3 个答案:

答案 0 :(得分:1)

感谢@Dani Akash,我想我找到了一个适合我在这里尝试的解决方案。 React Native: How to Determine if Device is iPhone or iPad

建议是使用宽高比来确定它是否是平板电脑。

import { Dimensions } from 'react-native';
const {height, width} = Dimensions.get('window'); 
const aspectRatio = height/width;

if(aspectRatio>1.6) {

   // Code for Iphone

}
else {

   // Code for Ipad

}

答案 1 :(得分:0)

反应原始宽度& height是与密度无关的像素,而不是普通像素。

为什么要使用density-independent pixels

智能手机设备的尺寸太多。无论屏幕尺寸如何,组件看起来都应该相同。

  

以这种方式设置尺寸对于应该应用的组件是常见的   无论屏幕如何,始终以完全相同的大小渲染   尺寸。

对于大多数情况,您只需使用Layout with Flexbox

答案 2 :(得分:0)

我知道这是事后的事,但你也可以使用getattr(),它有一个方法isTablet()。我不确定你使用的是什么版本的RN,但Dimensions.get('window')应该可以正常工作,我认为问题可能是你使用'screen'而不是'window'。