现在不推荐使用ListView,而应该使用FlatList。FlatList有一个叫做numColumns
,这正是我们想要创建可滚动网格的。
例如:
const data = [
{id: 'a', value: 'A'},
{id: 'b', value: 'B'},
{id: 'c', value: 'C'},
{id: 'd', value: 'D'},
{id: 'e', value: 'E'},
{id: 'f', value: 'F'},
];
const numColumns = 3;
const size = Dimensions.get('window').width/numColumns;
const styles = StyleSheet.create({
itemContainer: {
width: size,
height: size,
},
item: {
flex: 1,
margin: 3,
backgroundColor: 'lightblue',
}
});
function Grid(props) {
return (
<FlatList
data={data}
renderItem={({item}) => (
<View style={styles.itemContainer}>
<Text style={styles.item}>{item.value}</Text>
</View>
)}
keyExtractor={item => item.id}
numColumns={numColumns} />
);
}
此博客文章很好地解释了FlatList的新功能。
注意:由于某些原因,您必须keyExtractor
在FlatList上使用,而不是key
在每个项目上使用典型的道具。否则,您会收到警告。基本FlatList代码引发警告-React Native