FlatList和SectionList

FlatView
ItemSeparatorComponent:分割线组件,
ListFooterComponent:结尾组件
ListHeaderComponent:头组件
data:列表数据 (必须有)
horizontal:设置为true则变为水平列表。
numColumns:列数 组件内元素必须是等高的,无法支持瀑布流布局
columnWrapperStyle:numColumns大于1时,设置每行的样式
getItemLayout:如果我们知道行高可以用此方法节省动态计算行高的开销。
refreshing:是否正在加载数据
onRefresh:设置此属性需要一个标准的 RefreshControl 控件,刷新数据
renderItem:渲染每个组件 (必须有)
onViewableItemsChanged:当一个新的Item渲染或者隐藏 的时候调用此方法。参数:info: {viewableItems: Array, changed: Array} viewableItems:当前可见的Item,changed:渲染或者隐藏的Item。
scrollToEnd({params?: ?{animated?: ?boolean}}):滚动到末尾,如果不设置getItemLayout属性的话,可能会比较卡。
scrollToIndexparams: {animated?: ?boolean, index: number, viewPosition?: number}:滚动到制定的位置
scrollToOffset(params: {animated?: ?boolean, offset: number}):滚动到指定的偏移的位置。


Demo.png

渲染函数

_renderItem = (item) => {
        var txt = '第' + item.index + '个' + ' title=' + item.item.title;
        var bgColor = item.index % 2 == 0 ? 'red' : 'blue';
        return <Text style={[{flex:1,height:ITEM_HEIGHT,backgroundColor:bgColor},styles.txt]}>{txt}</Text>
    }

item.index:该数据对应的位置,
item.item.title:数组中的内容
SectionList:


import React, { Component } from 'react';
import {StyleSheet, Text, View, Image, TouchableOpacity,SectionList, FlatList, Alert} from 'react-native';
import Data from './Data3';
var Dimensions = require('Dimensions');
var {width} = Dimensions.get('window');
export default class Small extends Component {

    render() {
        return(
           <SectionList
               sections={Data}
               renderSectionHeader={this.RenderSectionHeader}
               renderItem={this.RenderItem}
               style={styles.ceilViewStyle}

           />
        );
    }
    RenderItem=(info)=>{
        return(
            <View style>
                <Image source={{uri:info.item.icon}}
                       style={styles.leftImageStyle}
                />
                <Text>{info.item.name}</Text>
            </View>
        );
    }
    RenderSectionHeader=(info)=>{
        return(
            <Text>{info.section.title}</Text>
        );
    }

}
const styles = StyleSheet.create({
    ceilViewStyle:{
        padding:10,
        borderBottomWidth:0.5,
        borderBottomColor:'yellow',
        flexDirection:'row',

    },
    leftImageStyle:{
        width:80,
        height:60,
        marginRight:15,
    },
    rightViewStyle:{

    },
    topTitle:{
        fontSize:20,
    },

    bottomTitleStyle:{
        width:width*0.7,
        marginTop:5
    }
})

sectionList比FlatList多一个,key属性,(info.item.属性名),(info.section.key),用于实现手机通信录。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • FlatList的简述 简单的栗子 data里塞数据,其实就是一个数组,数组里每个元素就是个字典 renderIt...
    踏云小子阅读 2,647评论 0 3
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,030评论 3 119
  • FlatList是一个高性能的列表组件,它是ListView组件的升级版,性能方面有了很大的提升,当然也就建议大家...
    代码森林中的一只猫阅读 2,612评论 0 3
  • 【LCZ1601~罗芳萍】 初次相见 你柔情似水 我的那颗心啊 立刻PCR出无数爱的片断 你的眼神 像线粒体一样 ...
    米兰_9076阅读 11,809评论 0 2
  • 集成Facebook时,会让填入Facebook Key Hash,虽说大公司的文字描述挺专业的,并且提供了获取F...
    jimmy_Hu阅读 5,828评论 0 2