yarn add react-native-grid-list
or
npm install react-native-grid-list --save
import React, { PureComponent } from 'react';
import { View, StyleSheet, Image } from 'react-native';
import GridList from 'react-native-grid-list';
const items = [
{ thumbnail: { uri: 'https://lorempixel.com/200/200/animals' } },
{ thumbnail: { uri: 'https://lorempixel.com/200/200/city' } },
{ thumbnail: { uri: 'https://lorempixel.com/200/200/nature' } },
{ thumbnail: { uri: 'https://lorempixel.com/200/200/cats' } },
];
export default class App extends PureComponent {
renderItem = ({ item, index }) => (
<Image style={styles.image} source={item.thumbnail} />
);
render() {
return (
<View style={styles.container}>
<GridList
showSeparator
data={items}
numColumns={3}
renderItem={this.renderItem}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'white',
},
image: {
width: '100%',
height: '100%',
borderRadius: 10,
},
});
Check the code here
You can use all the props from FlatList: http://facebook.github.io/react-native/docs/flatlist.html
Prop | Default | Type | Description |
---|---|---|---|
children | - | node |
Children elements |
data | not required if children is used | array |
Data to use in renderItem |
renderItem | not required if children is used | func |
Function that render each item of the grid |
numColumns | 3 | number |
Number of elements in a row |
itemStyle | {} | ViewPropTypes |
Style for the wrapper of item |
Separator | |||
showSeparator | false | bool |
Show a separator between items |
separatorBorderWidth | 0 | number |
Set separator width |
separatorBorderColor | 'white' | string |
Set separator color |
Animation | |||
showAnimation | false | bool |
Show an animation when load item |
animationInitialBackgroundColor | 'white' | string |
Set initial backgroundColor for animation |
animationDuration | 500 | number |
Duration of the animation |
Gustavo Gard