首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在lightblue flexbox中居中显示文本?

如何在lightblue flexbox中居中显示文本?
EN

Stack Overflow用户
提问于 2019-10-01 00:39:10
回答 3查看 42关注 0票数 0
代码语言:javascript
复制
import React, { Component } from 'react';
import { View, Text, FlatList, TouchableOpacity, Dimensions, StyleSheet } from 'react-native';

const data = [
    {id: 'Music', value: 'Music'},
    {id: 'Events', value: 'Events'},
    {id: 'About Us', value: 'About Us'},
    {id: 'Benefits', value: 'Benefits'},
    {id: 'Account', value: 'Account'},
    {id: 'Social Media', value: 'Social Media'},
    {id: 'FAQ', value: 'FAQ'},
    {id: 'Settings', value: 'Settings'}
  ];

const numColumns = 2;
const size = Dimensions.get('window').width/numColumns;  

export const Grid = () => {
    return (
        <FlatList
          style={{ marginTop: 20 }}
          data={data}
          renderItem={({item}) => (
            <TouchableOpacity style={styles.itemContainer}>
              <Text style={styles.item}>{item.value}</Text>
            </TouchableOpacity>
          )}
          keyExtractor={item => item.id}
          numColumns={numColumns} />
      );
}

const styles = StyleSheet.create({
    itemContainer: {
      width: size,
      height: size
    },
    item: {
      flex: 1,
      margin: 15,
      fontSize: 25,
      fontWeight: 'bold',
      color: 'white',
      backgroundColor: 'lightblue'
    }
  });

I want to be able to center text in both axes

我尝试在子视图和父视图中使用justifyContent:"center“,但不起作用。textAlign:"center“可以水平对齐文本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-01 00:45:34

试着这样做。

代码语言:javascript
复制
export const Grid = () => {
    return (
        <FlatList
          style={{ marginTop: 20 }}
          data={data}
          renderItem={({item}) => (
            <TouchableOpacity style={styles.itemContainer}>
              <View style={styles.item}>
                <Text style={styles.itemText}>{item.value}</Text>
              </View>
            </TouchableOpacity>
          )}
          keyExtractor={item => item.id}
          numColumns={numColumns} />
      );
}

const styles = StyleSheet.create({
    itemContainer: {
      width: size,
      height: size
    },
    item: {
      flex: 1,
      justifyContent: 'center',
      alignItems: 'center',
      margin: 15,
      backgroundColor: 'lightblue'
    },
    itemText: {
      fontSize: 25,
      textAlign: 'center',
      fontWeight: 'bold',
      color: 'white',
    }
  });
票数 1
EN

Stack Overflow用户

发布于 2019-10-01 00:49:59

请附上截图,询问有关在react原生设计方面的问题。要回答这个问题,你可以试试这个。

代码语言:javascript
复制
item:{
      alignSelf: 'center',
      flex: 1,
      margin: 15,
      fontSize: 25,
      fontWeight: 'bold',
      color: 'white',
      backgroundColor: 'lightblue'
},
itemContainer: {
      width: size,
      height: size,
      justifyContent: 'center',
      alignItems: 'center'
},
票数 0
EN

Stack Overflow用户

发布于 2019-10-01 01:26:35

您的itemContainer类缺少display: flex属性。这是在flex项目上使用flexbox属性所必需的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58171986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档