react-native SectionList 使用详解

2019-01-10  本文已影响0人  既然可以颠覆何必循规蹈矩

勤做笔记,方便自己,帮助他人。

属性

[
    { title: 'a', data: ['a1', 'a2'] },
    { title: 'b', data: ['b1', 'b2','b3'] },
    { title: 'c', data: ['c1'] },
]
// item  列表项数据 
// index  列表项在section中的索引
// section  列表项的section索引
// separators:  {
//    highlight',
//    unhighlight,
//    updateProps:{
//        select,
//        newProps,
//    }
// } 
 renderItem={({ item, index, section, separators }) =>
  <View style={styles.itemView}>
    <Text >{item}</Text>
  </View>
}

方法

 /**
     *
     * @param I Item 点击事件传递过来的index
     * 'viewPosition' (number) - 为0时将这个列表项滚动到可视区顶部 
     * (可能会被顶部粘接的header覆盖), 
     * 为1时将它滚动到可视区底部, 为0.5时将它滚动到可视区中央。
     * 'viewOffset' (number) - 继续偏移30像素的位置
     * 'sectionIndex' (number) - 第number个section
     * 'itemIndex' (number) - 的第number个item
     * 'animated' (boolean) -  是否启用动画
     */
    scrollToLocation(i) {
        this.refs.SectionList.scrollToLocation({
            animated : true,
            itemIndex : 0,
            sectionIndex : i,
            viewOffset : 30
        })
    }
<SectionList
  keyExtractor={(item, index) => item + index}
  ref='SectionList'
  refreshControl={
    <RefreshControl
      refreshing={refreshing}
      onRefresh={this.onRefresh}
      tintColor={[CS.THEME11]}
      colors={[CS.THEME11]}
    />
  }
  refreshing={refreshing}
  sections={list}
  renderItem={({ item }) =>
    <Item
      del={() => this.fetchDel(item)}
      item={item}
      btnPress={() => this.goToSendMsg(item)}
    />
  }
  ListEmptyComponent={<NullPage text={'暂无圈好友'}/>}
  ListHeaderComponent={<Header data={}}/>}
  ListFooterComponent={<View style={{ height: 100 }}/>}
  renderSectionHeader={({ section }) =>
    <View style={{ height: 24 }}>
      <Text style={styles.sectionTitle}>{section.title}</Text>
    </View>
  }
  getItemLayout={this._getItemLayout}
/>

注意:

上一篇下一篇

猜你喜欢

热点阅读