В моем приложении 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
. Проблема в том, что этот черный ящик (ie Image
) расширяется, чтобы заполнить красное поле по вертикали, а изображение вертикально центрировано внутри этого черного ящика, поэтому оно вертикально центрировано внутри красного ящика, в отличие от flex-start
позиция, в которой я хочу это. Я пытался добавить justifyContent: flex-start
и flexShrink: 1
к Image
, и ни один из них не изменил.
Кто-нибудь знает, как я могу подойти к этому?
ПРИМЕЧАНИЕ:
Если я удаляю height: 100%
на Image
, я получаю это:
ОБНОВЛЕНИЕ:
Чтобы уточнить, это то, что я хотел бы, чтобы это выглядело. Я убрал черную границу здесь. Я переместил его туда, куда я хочу, добавив top: -95
, но в целом это не сработает, поскольку значение будет различным для разных устройств: