如何在ReactNative的水平和垂直中心文本?

我在rnplay.org中有一个示例应用程序,其中justifyContent=“中心”和alignItems=“中心”是不工作的: https://rnplay.org/apps/AoxNKQ

文字应该居中。 为什么在顶部的文本(黄色)和父容器之间有一个边距?

代码:

'use strict';

var React = require('react-native');
var {
  AppRegistry,
  StyleSheet,
  Text,
  Image,
  View,
} = React;

var SampleApp = React.createClass({
  render: function() {
    return (
            <View style={styles.container}>
                <View style={styles.topBox}>
                    <Text style={styles.headline}>lorem ipsum{'\n'}ipsum lorem lorem</Text>

                </View>
                <View style={styles.otherContainer}>
                </View>
            </View>
    );
  }
});

var styles = StyleSheet.create({

    container: {
        flex: 1,
        flexDirection: 'column',
        backgroundColor: 'red',
        justifyContent: 'center',
        alignItems: 'center',
    },

    topBox: {
        flex: 1,
        flexDirection: 'row',
        backgroundColor: 'lightgray',
        justifyContent: 'center',
        alignItems: 'center',
    },
    headline: {
        fontWeight: 'bold',
        fontSize: 18,
    marginTop: 0,
        width: 200,
        height: 80,
    backgroundColor: 'yellow',
        justifyContent: 'center',
        alignItems: 'center',
    },

  otherContainer: {
        flex: 4,
        justifyContent: 'center',
        alignItems: 'center',
    backgroundColor: 'green',
    },


});

AppRegistry.registerComponent('SampleApp', () => SampleApp);

module.exports = SampleApp;

当前回答

使用

文本对齐:居中

看风景

其他回答

无论你在你的页面中有文本组件,你只需要设置文本组件的样式。

 <Text style={{ textAlign: 'center' }}> Text here </Text>

你不需要添加任何其他样式属性,这是壮观的魔术,它会设置你的文本在你的UI的中心。

从标题样式中删除height, justification content和alignItems。它将使文本垂直居中。添加textAlign: 'center',它将使文本水平居中。

  headline: {
    textAlign: 'center', // <-- the magic
    fontWeight: 'bold',
    fontSize: 18,
    marginTop: 0,
    width: 200,
    backgroundColor: 'yellow',
  }

在父视图中设置

justifyContent:center

在子视图中alignSelf:center

<View style={{ backgroundColor: 'blue', justifyContent: 'center' }}>
  <Text style={{ fontSize: 25, textAlign: 'center' }}>A</Text>
</View>

你可以使用两种方法:

To make text align center horizontally, apply this Property (textAlign:"center"). Now to make the text align vertically, first check direction of flex. If flexDirection is column apply property (justifyContent:"center") and if flexDirection is row is row apply property (alignItems : "center") . To Make text align center apply same property (textAlign:"center"). Now to make it align vertically make the hieght of the <Text> </Text> equal to view and then apply property (textAlignVertical: "center")...

它很可能会起作用……