每行中的项目将根据其文本大小而变化。使用Flatlist来呈现项目。
TagView.js
<View style={styles.tagView}>
<FlatList
scrollEventThrottle={1900}
data={this.state.interests}
numColumns={5}
renderItem={({ item }) => (
<View style={styles.tag}>
<Text>{item.tagName}</Text>
</View>
)}
keyExtractor={(item, index) => index}
contentContainerStyle={{ paddingBottom: 100 }}
/>
</View>
样式
tagView: {
flex: 1,
flexDirection: "row",
flexWrap: "wrap"
},
tag: {
borderWidth: 1,
borderRadius: 10,
borderColor: "black",
backgroundColor: "white",
padding: 3,
marginTop: 5
}
结果
但是这里的项目没有按设备宽度换行。有什么方法可以使内容换行吗?
alignItems: 'flex-start'
。 - Pritish VaidyaFlatList
中使用它,原因有很多,请查看这里。另一种选择是使用ScrollView
。 - Pritish Vaidya