FlatList中标头和正文的分隔符样式

时间:2018-12-03 09:13:58

标签: react-native react-native-flatlist

当前,我在FlatList上遇到问题。 我有一个呈现清单的组件。 按照设计,标题的宽度是屏幕的宽度,正文将左右左右填充10px。

所以我用了contentContainerStyle={{paddingHorizontal: 10}}。 但是结果是页眉和正文左右分别填充了10px。

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

更新:非常抱歉,我未能彻底描述我的问题。

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 with contenContainerStyle

直接在renderItems内添加样式 with not use contentContainerStyle

1 个答案:

答案 0 :(得分:0)

  1. 给自己的身体一种风格。

    style={styles.bodyContainer}
    

,然后在StyleSheet中添加属性。

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

这是正确的方法或

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

    style={{ paddingHorizontal: 10 }}