目的
今天我要实现一个 类似于 iOS 开发中带有分组的colllectionView 样式的布局, 每个section都要有个组头。http://www.jianshu.com/p/6302c4d48b97
首先我们要先决定要使用什么控件。ScrollView
和ListView
/FlatList
还有SectionList
都是可以选择的。
ScrollView
会把所有子元素一次性全部渲染出来。使用上最简单。但是如果你有一个特别长的列表需要显示,可能会需要好几屏的高度。这时就会占用很大的内存去创建和渲染那些屏幕以外的JS组件和原生视图,性能上也会有所拖累。ListView
更适用于长列表数据。它会惰性渲染子元素,并不会立即渲染所有元素,而是优先渲染屏幕上可见的元素。FlatList
是0.43版本开始新出的改进版的ListView,性能更优,但是官方说现在可能不够稳定,尚待时间考验。但是它不能够分组/类/区(section)。SectionList
也是0.43版本推出的, 高性能的分组列表组件。但是它不支持头部吸顶悬浮的效果,但是也不要伤心,官方在下一个版本开始就可以支持悬浮的section头部啦