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