В моем приложении React Native у меня есть красный прямоугольник высотой 300, который я хочу центрировать по вертикали, и изображение, которое я хочу разместить внутри и вверху этого красного прямоугольника. Вот мой код:
import React, { Component } from 'react';
import { View, Image} from 'react-native';
export default class Login extends Component {
render() {
return (
<View style={{
flex: 1,
justifyContent: "center",
alignItems: "center"
}}>
<View
style={{
borderWidth: 3,
borderColor: 'red',
width: "100%",
height: 300
}}
>
<Image
source={require('../../images/swoord-top.png')}
style={{
width: "100%",
height: "100%",
resizeMode: "contain",
borderWidth: 3
}}
>
</Image>
</View>
</View>
);
}
}
Вот как это выглядит:
Красное поле — это внешнее поле, о котором я упоминал, а черное поле — это просто граница Image
. Проблема в том, что этот черный ящик (то есть Image
) расширяется, чтобы заполнить красный ящик по вертикали, а изображение центрировано по вертикали внутри этого черного ящика, поэтому оно вертикально центрировано внутри красного поля, а не в позиции flex-start
, которую я хочу это при. Я пробовал добавлять justifyContent: flex-start
и flexShrink: 1
к Image
, но ничего не изменилось.
Кто-нибудь знает, как я могу подойти к этому?
ПРИМЕЧАНИЕ:
Если я уберу height: 100%
на Image
, я получу это:
ОБНОВЛЕНИЕ:
Чтобы уточнить, это то, что я хотел бы, чтобы это выглядело. Я удалил черную рамку здесь. Я переместил его туда, где мне нужно, добавив top: -95
, но в целом это не сработает, потому что значение будет разным для разных устройств: