首页 > 解决方案 > FlatList 中标题和正文的分隔符样式

问题描述

目前,我遇到了 FlatList 的问题。我有一个组件来呈现列表簿。按照设计,标题的宽度是屏幕的宽度,正文将左右填充 10px。

所以我用contentContainerStyle={{paddingHorizontal: 10}}. 但是结果是header和body都是10px左右的padding。

请提出解决方法。对不起,我的英语不好!!

更新:我很抱歉没有彻底描述我的问题。

main.tsx

...
public render() {
  return (
    <FlatList
      key...
      data={..}
      renderItem={this.renderItems}
      ListHeaderComponent={this.renderHeader}
      contentContainerStyle={styles.contentStyle}
    />
  );
}

private renderHeader = () => {
  return (
    <View style={style.header}
      //TODO something ...
    </View>
  );
}

private renderItems: ListRenderItem<IBook> = ({ item: {bookId} }) => bookId ?
  (
    <BookGridCell
      title={...}
      image={...}
      //TODO more..
    />
  ) : <View style={styles.emptyBox} /> 
}

renderItems,我调用了一个组件BookGridCell。在此组件中,设置了书籍的设计。所以如果我直接在里面添加样式renderItems,每本书都会有10px的左右边距,而不是整个正文。

contentContainerStyle 与 contentContainerStyle 一起使用时

当直接在里面添加样式renderItems 而不使用 contentContainerStyle

标签: react-nativereact-native-flatlist

解决方案


  1. 给你的身体一种风格。

    style={styles.bodyContainer}
    

然后在 StyleSheet 中添加属性。

    const styles = StyleSheet.create({
    bodyContainer: {
      paddingHorizontal: 10    
      },

这是正确的方法或

  1. 您可以直接在视图中添加填充。

    style={{ paddingHorizontal: 10 }}
    

推荐阅读