如何更改ListView中每隔一行的背景颜色?

时间:2016-02-04 13:04:44

标签: react-native

有没有办法更改ListView中每第二行的背景颜色?

我认为应该可以使用if语句来识别它是偶数行还是奇数行并根据它选择样式。但是,似乎无法在React-Native中使用它。

我的renderRow函数如下所示:

renderRow={(rowData) => {
          return (
        <TouchableHighlight
          onPress={() => this.props.onSelectNote(rowData)}
          style={styles.rowStyle}
          underlayColor="#9E7CE3"
        >
          <Text style={styles.rowText}>{rowData.title}</Text>
        </TouchableHighlight>              )
        }
      }

截至目前,所有行都将根据rowStyle设置样式。如何为不同的行设置不同的样式?

1 个答案:

答案 0 :(得分:3)

您可以将ID传递给rowData,以了解您渲染的行是偶数还是奇数,然后对所有偶数/奇数行使用自定义样式。

类似的东西:

renderRow={(rowData, sectionID, rowID, highlightRow) => {
    let evenRow = rowData.id % 2 == 0;
    return (
      <TouchableHighlight
        onPress={() => this.props.onSelectNote(rowData)}
        style={[styles.rowStyle, evenRow && styles.evenRowStyle}
        underlayColor="#9E7CE3"
      >
        <Text style={styles.rowText}>{rowData.title}</Text>
      </TouchableHighlight>
    );
  }
}