Освоение центрирования в React Native с помощью Position Absolute

В React Native центрирование элементов — обычная задача при создании мобильных приложений. Один из способов добиться центрирования — использовать свойство CSS position: Absolute. В этой статье мы рассмотрим различные методы центрирования элементов с использованием position: Absoluteв React Native, а также приведем примеры кода для каждого метода.

Метод 1: абсолютное центрирование с помощью Flexbox
Flexbox — это мощная система компоновки в React Native, которая упрощает позиционирование элементов. Чтобы центрировать элемент с помощью position: Absoluteи Flexbox, выполните следующие действия:

‘center’,
alignItems: ‘center’,
},
centeredElement: {
ширина: 100,
высота: 100,
backgroundColor: ‘красный’,
},
});
экспортировать CenteredElement по умолчанию;

Объяснение:

    • Стиль containerиспользует flex: 1, чтобы контейнер заполнил доступное пространство.

‘center’ и alignItems: 'center'центрируют дочерний элемент как по вертикали, так и по горизонтали.

Метод 2: абсолютное центрирование с помощью свойств позиционирования.
Другой способ добиться абсолютного центрирования — использовать свойства позиционирования top, bottom, left</. code>и right. Вот пример:

import React from 'react';
import { View, StyleSheet } from 'react-native';
const CenteredElement = () => (
  <View style={styles.container}>
    <View style={styles.centeredElement} />
  </View>
);
const styles = StyleSheet.create({
  container: {
    flex: 1,
    position: 'relative',
  },
  centeredElement: {
    position: 'absolute',
    top: '50%',
    left: '50%',
    transform: [{ translateX: -50 }, { translateY: -50 }],
    width: 100,
    height: 100,
    backgroundColor: 'blue',
  },
});
export default CenteredElement;

Объяснение:

    • Для стиля containerустановлено значение position:relative, чтобы установить контекст позиционирования для дочернего элемента.
    • Для стиля centeredElementустановлено значение position: Absolute, чтобы удалить элемент из обычного потока документа.
    • top: '50%'и left: '50%'позиционируют элемент на расстоянии 50 % от верхнего и левого краев содержащего его элемента.

>

смещает элемент назад на 50 % от его собственной ширины и высоты соответственно, чтобы идеально центрировать его.

Метод 3: абсолютное центрирование с помощью размеров
Если вы знаете размеры элемента, который хотите центрировать, вы можете использовать API Dimensionsдля динамического расчета положения центра. Вот пример:

import React from 'react';
import { View, StyleSheet, Dimensions } from 'react-native';
const CenteredElement = () => {
  const windowWidth = Dimensions.get('window').width;
  const windowHeight = Dimensions.get('window').height;
  const elementWidth = 100;
  const elementHeight = 100;
  const top = (windowHeight - elementHeight) / 2;
  const left = (windowWidth - elementWidth) / 2;
  return (
    <View style={styles.container}>
      <View style={[styles.centeredElement, { top, left }]} />
    </View>
  );
};
const styles = StyleSheet.create({
  container: {
    flex: 1,
    position: 'relative',
  },
  centeredElement: {
    position: 'absolute',
    width: 100,
    height: 100,
    backgroundColor: 'green',
  },
});
export default CenteredElement;

Объяснение:

  • API Dimensionsиспользуется для получения ширины и высоты окна.
  • Положение центра рассчитывается путем вычитания половины размеров элемента из размеров окна.
  • Значения topи leftприменяются как встроенные стили к centeredElementдля его динамического центрирования.

В этой статье мы рассмотрели различные методы центрирования элементов с использованием position: Absoluteв React Native. Мы рассмотрели абсолютное центрирование с помощью Flexbox, свойства позиционирования и динамическое центрирование с помощью API измерений. Эти методы предоставляют гибкие и надежные способы добиться выравнивания по центру в ваших приложениях React Native, улучшая пользовательский интерфейс и общий пользовательский опыт.

для идеального выравнивания