React Native中的Flexbox是否使用dp或像素?

ZJL*_*ZJL 7 android react-native

正如标题所提到的,我对RN中使用的布局大小值的单位感到困惑.在文档中,下面的代码表明它使用dp而不是像素作为大小单位.这里getPixelSizeForLayoutSize()函数尝试将dp值转换为像素值.但是,在实际应用程序中,当使用PixelRatio.get()不分割大小值(高度/宽度等)时,我的组件会超出屏幕范围.非常感谢您的澄清!

var image = getImage({
  width: PixelRatio.getPixelSizeForLayoutSize(200),
  height: PixelRatio.getPixelSizeForLayoutSize(100),
});
<Image source={image} style={{width: 200, height: 100}} />
Run Code Online (Sandbox Code Playgroud)

ide*_*ide 9

React Native在JavaScript级别使用逻辑像素(在iOS上也称为"点"),而不是设备像素.在本机级别工作时,您可能需要通过将逻辑像素乘以屏幕比例(例如2x,3x)来处理设备像素.

处理图像时,您需要以逻辑像素指定其尺寸.此外,React Native支持小数像素.如果需要以设备像素的粒度指定精确布局,请使用1 / PixelRatio.get().

  • 我也想通了.在Android术语中,我认为Flexbox使用dp作为Javascript级别的单位. (2认同)