Элемент React native flex между двумя представлениями

#react-native #flexbox

#react-native #flexbox

Вопрос:

Я пытаюсь поместить элемент в середину двух представлений, он должен выглядеть примерно так:

введите описание изображения здесь

итак, я знаю, как сгибать оранжевое и синее представления, проблема в зеленом представлении.

Я знаю, что могу установить для его представления абсолютное значение и добавить маржу -максимум 100 или что-то в этом роде.

но это не изменится относительно ширины и высоты экрана.

кто-нибудь знает, как это сделать, чтобы зеленый вид менялся в зависимости от ширины и высоты экрана?

это то, что я получил до сих пор:

 import React, {Component} from 'react';
import {View} from 'react-native';

export default class MyLayout extends Component {
  render() {
    return (
      <View style={{
        flex: 1,
        width: 300,
        height: 500,
        alignItems: 'center',
      }}>
        <View style={{
          flex: 1,
          width: 100,
          height: 100,
          flexGrow: 1,
        }} />
        <View style={{
          flex: 1,
          width: 100,
          height: 100,
          flexGrow: 3,
        }} />
        <View style={{
          flex: 1,
          width: 100,
          height: 100,
          justifyContent: 'center',
          marginTop: 130,
          position: 'absolute',
        }} />
      </View>
    );
  }
};
  

Ответ №1:

Таким образом можно получить высоту экрана

 height: Dimensions.get('window').height
  

Конечно, не забудьте импортировать его

 import { Dimensions } from 'react-native'

  

затем вы можете задать для него относительное расстояние в соответствии с высотой
Например

 height/2