- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
列表视图
列表视图
列表视图——为变化的数据列表的垂直滚动的高效显示而设计的一个核心组件。最小
的 API 是 建一个 ListView.DataSource ,用一个简单的数组数据的 blob 填
充,并用那个数据源实例化一个 ListView 组件和一个 renderRow 回调,它会从
数组数据中带走一个 blob 并返回一个可渲染的组件。
最小的例子:
getInitialState: function() {
var ds = new ListView.DataSource({rowHasC anged: (r1, r2) = r
1 !== r2}); return { dataSource: ds.cloneWit Rows([row 1,
row 2]),
};
},render: function() {
return (
ListView
dataSource={t is.state.dataSource}
renderRow={(rowData) = Text{rowData}/Text}
/
);
},
列表视图还支持更高级的功能,包括带有 sticky 页眉的部分,页眉和页脚的支持,
回调到可用数据的最后(onEndReac ed )和设备窗口变化中可见的行集
(onChangeVisibleRows),以及一些性能优化。
当动态加载一些可能非常大(或概念上无限大的)数据集时,为了让列表视图滚送的顺
畅,有一些性能操作设计:
只有重新呈现改变行——提供给数据源的 hasRowChanged 函数告诉列表视
图是否需要重新呈现一行,因为源数据发生了变化——更多细节请看
ListViewDataSource。
行限速呈现——默认情况下,每次事件循环时,只显示一行 (可用 pageSize
道具定制)。这将工作分解为小块,在呈现行时,减少框架下降的机会。
Pro s
Edit on GitHub
ScrollView props...
dataSource 列表视图数据源
initialListSize 数字型
多少行呈现在初始组件装置中。使用这个来实现,这样第一个屏幕需要的数据就会一
次出现,而不是在多个框架的过程中出现。
onChangeVisibleRows 函数型
(visibleRows, changedRows) = void
当可见的行集改变时调用。visibleRows 为所有可见的行映射 { sectionID: {
rowID: true }} ,c angedRows 为已经改变了它们可见性的行映射 {
sectionID: { rowID: true | false }} ,true 表明行可见,而 false 表明行已
经从视图中被删除了。
onEndReached 函数型
当所有行已经呈现并且列表被滚动到了 onEndReachedThreshold 的底部时被调
用。提供了 native 滚动事件。
onEndReachedThreshold 数字型
onEndReached 像素的阈值。
pageSize 数字型
每次事件循环显示的行的数量。
removeClippedSubviews 布尔型
为提高大型列表滚动性能的实验性能优化,与溢出一起使用:“隐藏”在行容器中。使
用时自己承担风险。
renderFooter 函数型
() = renderable
页眉和页脚在每个呈现过程中都会出现(如果提供了这些道具)。如果重新呈现它们耗
费很大,那就把它们包在 StaticContainer 或其他适当的机制中。在每一个呈现过
程中,页脚始终是在列表的底部,页眉始终在列表的顶部。
renderHeader 函数型
renderRow 函数型
(rowData, sectionID, rowID) = renderable 需要从数据源和它的 id 取走一个
数据条目,并返回一个可渲染的作为行呈现的组件。默认的情况下,数据正是被放入
了数据源的东西,但也可以提供自定义的提取器。
renderSectionHeader 函数型
(sectionData, sectionID) = renderable
如果提供了该函数,那么本节的 sticky 页眉就会呈现。Sticky 行为意味着它将带着
本节顶部的内
文档评论(0)