我是react native的新手.

我搜索了如何制作它,似乎resizeMode = 'contain'是好的.

然而,由于我使用了resizeMode = 'contain',图像保持了垂直居中的位置,这是我不想要的.

我试着使用一个插件,比如react-native-fit-image,但没有成功.

我找到了the reason why the image is not sizing automatically个.

所以,我的问题是,处理这种情况的最佳方式是什么?

我是否必须手动放置每个图像的width, height个大小?

我想要:

  • 保持图像的比例.
  • 垂直顶部定位.

React本机测试代码:

https://snack.expo.io/ry3_W53rW

最终我想做的是:

https://jsfiddle.net/hadeath03/mb43awLr/

谢谢

推荐答案

图像是垂直居中的,因为您在"样式"属性中添加了flex: 1.不要添加flex:1,因为这会将图像填充到其父图像中,在本例中这是不需要的.

您应该始终在React Native中的图像上添加高度和宽度.如果图像总是相同的,可以使用Dimensions.get('window').width来计算图像的大小.例如,如果比率始终为16x9,则高度为图像宽度的9/16.宽度等于设备宽度,因此:

const dimensions = Dimensions.get('window');
const imageHeight = Math.round(dimensions.width * 9 / 16);
const imageWidth = dimensions.width;

return (
   <Image
     style={{ height: imageHeight, width: imageWidth }}
   />
);

Note: When using an implementation like this, your image will not automatically resize when rotating your device, using split screen, etc. You will have to take care of those actions as well if you support multiple orientations...

如果比率不同,则根据每个不同图像的比率动态更改9/16.如果你真的不介意图像有点被裁剪,你也可以使用固定高度的封面模式:(https://snack.expo.io/rk_NRnhHb)

<Image
  resizeMode={'cover'}
  style={{ width: '100%', height: 200 }}
  source={{uri: temp}}
/>

React-native相关问答推荐

React-Native:请纠正我对状态如何工作的误解 - 动态文本输入

为什么当我更换屏幕时playground 音乐不会停止?

在 React Native 中,水平滚动不适用于我的整个应用程序

需要以前的props和state回调的静态 getDerivedStateFromProps?

变量 window在react-native 中代表什么?

react-native 链接仅适用于一个项目(Android 或 iOS)

如何在 react-native 中在子级和父级之间传递数据?

React Native 使视图 Hug键盘顶部

如何在 React Native 中创建对角线边框?

当数据为空时,React-Native FlatList 呈现零状态

键盘上方的 React Native 完成按钮

React Native - 为什么执行这个函数?

通过 IOS 中的 Linking.openURL React Native Open 设置

如何在本地构建 Expo APK

React Navigation 中的选项卡导航器图标

Expo LAN 配置不适用于新的 ReactNative 元素

React Native - 如何从推送通知中打开路由

React本机IOS,当TextInput获得焦点时,按钮按下不注册

如何在 react-native 中将文本复制到剪贴板?

在 React Native 中将props传递给外部样式表?