React Native Grid View:图像混淆了视图

时间:2015-11-21 11:06:23

标签: ios reactjs flexbox react-native

我正在构建一个需要网格视图的应用。到目前为止,我的网格工作正常,如下图所示,红色方块位置很好。但是,当我在每个框中添加图像时,它会弄乱网格(第二张图片)。有什么想法吗?

这是截图(第一张图片可以正常使用边距并居中)

view works fine with margins and is centered

第二张图片在中间和右侧没有更多的边距

no more margins in the middle and on the right side

这是生成视图的代码:

    renderData = (data) => {
        return (
            <View style={styles.box}>
                <Text style={styles.boxText}>{data.name}</Text>

                // This is what I add to display the image
                <Image 
                 source={data.image} 
                 style={styles.boxImage} />
            </View>
        );
    }

    renderPage() {
        return (
            <View style={styles.container}>
                <TouchableHighlight style={styles.filterButton}>
                    <Text style={styles.filterButtonMessage}>
                        Occasions
                    </Text>
                </TouchableHighlight>
                <ListView contentContainerStyle={styles.list}
                    dataSource={this.state.data2}
                    renderRow={this.renderData} />
            </View>
        );
    }
    var styles = StyleSheet.create({
         container: {
             flex: 1,
        },
        list: {
             flex: 1,
             flexDirection: 'row',
             flexWrap: 'wrap',
             justifyContent: 'center'
        },
        box: {
            width: 150,
            backgroundColor: 'red',
            height: 150,
            alignItems: 'stretch',
            margin: 3
        },
        boxImage: {
            flex: 1
        },
        boxText: {
            flex: 1,
            fontWeight: '900',
            fontSize: 15,
            color: 'white',
            position: 'absolute',
            bottom: 5,
            right: 5,
            backgroundColor: 'rgba(0,0,0,0)'
       }
    });

1 个答案:

答案 0 :(得分:0)

你试过试试......

boxImage: { 
    flex: 1, 
    width: 150, 
    height: 150,
},