RangerMauve / react-native-square-grid

A component for rendering a grid of squares that perfectly fill your space (potentially with scrolling)
MIT License
13 stars 4 forks source link

react-native-square-grid

A component for rendering a grid of squares that perfectly fill your space (potentially with scrolling)

npm install --save react-native-square-grid
import SquareGrid from "react-native-square-grid";

API

<SquareGrid columns={number} rows={number} items={array<any>} renderItem={fn(item, index)} />

Example

square grid example screenshot

import React, {Component} from "react";
import {
    View,
    StyleSheet,
    Text,
} from "react-native";
import SquareGrid from "react-native-square-grid";

var NUMBERS = [
    "one",
    "two",
    "three",
    "four",
    "five",
    "six"
];

var styles = StyleSheet.create({
    item: {
        flex: 1,
        alignSelf: "stretch",
        padding: 16
    },
    content: {
        flex: 1,
        backgroundColor: "red",
        alignItems: "center",
        justifyContent: "center"
    },
    text: {
        color: "white",
        fontSize: 32
    }
});

// Best viewed in landscape
export default function SquareGridExample(props){
    return (
        <SquareGrid rows={2} columns={3} items={NUMBERS} renderItem={renderItem} />
    );
}

function renderItem(item) {
    return (
        <View style={styles.item}>
            <View style={styles.content}>
                <Text style={styles.text}>{item}</Text>
            </View>
        </View>
    );
}

Running the example

There is an example project you can run which support orientation changes. You can view the browser version here