使用ListView组件

ListView组件呈现一个垂直滚动的,动态且结构相似的一组数据。

ListView适合有很长清单的数据集,其中数据总量可能随时在变化。与ScrollView不同,ListView仅渲染当前屏幕上显示的元素,而不是一次性渲染(按需分配GPU资源,性能更高)

 

ListView必须2个属性:dataSource和renderRow,即数据源和其中一行的组件格式。

以下例子是一个非常简单的ListView,使用了静态数据。首先初始化数据源来生成ListView实例,每一行渲染为一个Text组件。最后渲染ListView和所有的Text组件。

 

ListView需要提供一个rowHasChanged函数。此函数的作用是告诉ListView是否需要重新渲染行(因为数据已经发生变化了)。如何高效的描述“换行”这个逻辑,以便能在最短时间内完成重渲染,是这其中比较关键的问题。 这里用了一个很简单的判断方法:当相邻的两行不相等时。

默认情况下,ListView每次仅重新渲染1行,以免导致滚动掉帧大显得不顺滑。