reactjs 水平平面列表:项目间距

roqulrg3  于 2022-11-04  发布在  React
关注(0)|答案(3)|浏览(158)

我试图在水平平面列表中的项目周围留出空间,但无论我如何尝试,似乎都不起作用:

const renderItem = ({item}) => {

return (
  <View style={styles.item}>
    <Image
      source={{uri: content.uri}}
      style={styles.image}
    />
    <View>
      <Text style={styles.contentTitle}>{content.title}</Text>
      <Text style={styles.contentText}>{content.releaseDate}</Text>
    </View>
  </View>
)

}

<View style={styles.container}>
  {header}
  <View style={{width: '100%', justifyContent: 'space-around', backgroundColor: 'green'}}>
     <FlatList
        data={data}
        pagingEnabled={true}
        horizontal={true}
        renderItem={renderItem}
        keyExtractor={item => item.id}
        ref={flatList}          
      />
  </View>   
</View>

const styles = StyleSheet.create({
  container: {
    width: windowWidth,
    marginTop: 15,
    paddingBottom: 15,
    borderBottomWidth: 1,
    borderBottomColor: Colors.borderBlue,
    backgroundColor: Colors.backgroundGenericTransparent,
  },
  item: {
    width: windowWidth / 3.1,
    backgroundColor: 'red',
  },
  image: {
    width: '100%',
    height: 220,
  },
})

实验结果:

正如你所看到的,尽管我已经在容器上添加了一个空格属性,但是所有的项目都在左边。

4zcjmb1e

4zcjmb1e1#

使用ItemSeparatorComponent

<FlatList
    data={data}
    pagingEnabled={true}
    horizontal={true}
    renderItem={renderItem}
    keyExtractor={item => item.id}
    ref={flatList}
    ItemSeparatorComponent={() => {
        return (
            <View
                style={{
                    height: "100%",
                    width: 10,
                }} />
        );
    }}
/>
jv4diomz

jv4diomz2#

不知道你想达到什么目的。这是你想要的吗?
快餐店
只要在容器中添加水平填充即可。无论项目有多大,您都可以在左右两侧保留空间。如果项目太大,您可以开始滚动。

lrpiutwd

lrpiutwd3#

在平面列表上使用此属性:

columnWrapperStyle={{ justifyContent: "space-between" }}

相关问题