Create Flatlist

 Flatlist

 


import React, { Component } from 'react';
import { View, FlatList, StyleSheet, Text, StatusBar, Dimensions } from 'react-native';

const datalist=[{key:'1'}, {key:'2'}, {key:'3'}, {key:'4'}, {key:'5'}]

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

export default class RecyclerView extends Component{
formatData= (datalist, numColumns) =>{
const totalRows = Math.floor(datalist.length / numColumns)
let totalLastRow=datalist.length-(totalRows * numColumns)
while(totalLastRow !== 0 && totalLastRow !==numColumns){
datalist.push({key:"blank", empty: true})
totalLastRow++
}
return datalist
}

_renderItem=({item, index}) => {
let {itemStyle, itemText, itemInvisible} = styles
if(item.empty){
return <View style={[itemStyle, itemInvisible]}></View>
}
return(
<View style={itemStyle}>
<Text style={itemText}>{item.key}</Text>
</View>
)
}

render(){
let {container, itemText}= styles
return(
<View style={container}>
<FlatList
data={this.formatData(datalist, numColumns)}
renderItem={this._renderItem}
keyExtractor={(item, index)=> index.toString()}
numColumns={numColumns}
/>
</View>
)
}
}

const styles= StyleSheet.create({
container:{
flex: 1,
paddingTop:40
},

itemStyle:{
backgroundColor:"#3232ff",
alignItems:"baseline",
justifyContent:"center",
height:100,
flex:1,
margin:1,
height: WIDTH / numColumns
},

itemText:{
color:'#fff',
fontSize:30,
alignItems:"flex-end"
},

itemInvisible:{
backgroundColor: 'transparent'
}

})

Comments

Popular posts from this blog

RecyclerView Complete App

Integrating Google maps with React native