Вертикальное центрирование в React Native не работает

Я использую ScrollView, и мне не удается центрировать значок на одном из внутренних View.

Вертикальное центрирование в React Native не работает

    import Icon from 'react-native-vector-icons/MaterialCommunityIcons';

<ScrollView>
...
        <View style = {styles.detailRowContainer}>
          <View style = {{flex: 1}}>
            <Text style = {styles.label} numberOfLines = {1}>
              {'Phone Number'}
            </Text>
            <Text style = {styles.value} numberOfLines = {1}>
              {phone}
            </Text>
          </View>
          <View style = {styles.round}>
            <TouchableWithoutFeedback onPress = {this._onPressPhone}>
              <Icon size = {22} name = "phone" />
            </TouchableWithoutFeedback>
          </View>
        </View>;
...
</ScrollView>



        detailRowContainer: {
            flexDirection: 'row',
            justifyContent: 'center',
            flex: 1,
            marginTop: 10,
            paddingBottom: 10,
            borderBottomWidth: 1,
            borderBottomColor: Colors.lightGray,
        },
        label: {
            color: Colors.glofoxDark,
            marginBottom: 3,
        },
        value: {
            color: Colors.glofoxDark,
            fontWeight: '800',
            borderBottomWidth: 1,
            borderBottomColor: Colors.lightGray,
        },
        round: {
            backgroundColor: Colors.lightBlue,
            width: 30,
            height: 30,
            borderRadius: 30,
            overflow: 'hidden',
            justifyContent: 'center',
            alignItems: 'flex-end',
            flexDirection: 'row',
            padding: 4,
        },
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
2
0
8 647
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Таким образом нужно изменить стили.

Прямо сейчас ты делаешь

  • flexDirection: row вместе с justifyContent: center. Поскольку ваш первый дочерний элемент принимает полный родительский изгиб, поэтому он не показывает свой эффект
  • Дан paddingBottom, но для центрирования должен быть предоставлен эквивалентный paddingTop.
  • padding для круглого стиля следует заменить на margin, иначе это влияет на положение внутренних элементов.
  • alignItems в раунде, не должно быть flex-end, его следует заменить на center

Вот стили, которые исправят вертикальное центрирование

 detailRowContainer: {
        flexDirection: 'row',
        alignItems: 'center',
        flex: 1,
        marginTop: 10,
        paddingTop: 10,
        paddingBottom: 10,
        borderBottomWidth: 1,
        borderBottomColor: Colors.lightGray,
    },

 round: {
        backgroundColor: Colors.lightBlue,
        width: 30,
        height: 30,
        borderRadius: 30,
        overflow: 'hidden',
        justifyContent: 'center',
        alignItems: 'center',
        margin: 4
    },

если я изменяю отступы таким образом, положение оболочки значка будет так же, как прежде, а значка - не по центру

Matt 01.04.2018 14:10

Обновил ответ

Pritish Vaidya 01.04.2018 14:46

Спасибо за ваш анализ. Я не знал, что отступы могут повлиять на положение внутренних элементов.

Matt 01.04.2018 16:01

Другие вопросы по теме