Giter Club home page Giter Club logo

react-native-grid-example's Introduction

React Native - Grid Layout Example

By default React Native's ListView renders as a table.

In order to change the table layout to a grid layout (similar to UICollectionViewFlowLayout) you need to do the following;

Setup the ListView container style

A ListView root element is a ScrollView that inherits the ListView's props:

    var ListView = React.createClass({
    // ...
        render: function() {
            return (
              <ScrollView {...props}
                ref={SCROLLVIEW_REF}>
                {header}
                {bodyComponents}
                {footer}
              </ScrollView>
            );
        }
    }

see source

With that in mind you can use the ScrollView's contentContainerStyle prop to style the ListView;

var GridLayoutExample = React.createClass({
// ...
render: function() {
    return (
      <ListView contentContainerStyle={styles.list}
        dataSource={this.state.dataSource}
        renderRow={(rowData) => <Text style={styles.item}>{rowData}</Text>}
      />
    );
  }

Define the grid layout using flexbox

Using basic flexbox we can define whatever grid layout we want;

var styles = StyleSheet.create({
    list: {
        justifyContent: 'center',
        flexDirection: 'row',
        flexWrap: 'wrap'
    },
    item: {
        backgroundColor: '#CCC',
        margin: 10,
        width: 100,
        height: 100
    }
});

If you're flexbox is somewhat rusty, I highly recommend you go through this guide

Credits & References

react-native-grid-example's People

Contributors

yelled3 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.