(8)-列表视图
最后更新于:2022-04-01 06:50:03
> [ListView](http://facebook.github.io/react-native/docs/listview.html)
## 属性
| 名称 | 类型 | 意义 | 默认值 |
| --- | --- | --- | --- |
| dataSource | ListViewDataSource | 数据集 | 无 |
| initialListSize | number | 设置第一页初始化的元素个数 | 无 |
| onChangeVisibleRows | function | 当有元素的可见性发生改变的时候,该函数会被调用,(visibleRows, changedRows)参数代表了状态可见,状态改变的行,当visible为true时,代表滑入到视图,当visible为false表示滑出视图 | 无 |
| onEndReached | function | 当所有元素展现完或着滑动结束后调用的函数 | 无 |
| onEndReachedThreshold | number | 像素的临界值,该属性和onEndReached配合使用,因为onEndReached滑动结束的标志是以该值作为判断条件的 | 无 |
| pageSize | number | 每一次循环事件显示的行数(暂没理解该意思) | 无 |
| removeClippedSubviews | bool | 提升性能的一个选项,是一解决溢出的方法,具体做法是隐藏行容器 | 无 |
| renderFooter | function | 渲染底部 | 无 |
| renderHeader | function | 渲染头部 | 无 |
| renderRow | function | 渲染行 | 无 |
| renderScrollComponent | function | 返回一个可滚动的组件 | 无 |
| renderSectionHeader | function | 不祥 | 无 |
| renderSeparator | function | 针对某一特殊元素进行渲染 | 无 |
| scrollRenderAheadDistance | number | 渲染的时间 | 无 |
## 实例
~~~
'use strict';
var React = require('react-native');
var {
ListView,
AppRegistry,
StyleSheet,
View,
Text,
} = React;
var helloworld = React.createClass({
getInitialState: function() {
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
return {
dataSource: ds.cloneWithRows(['row 1', 'row 2','row 3','row 4', 'row 5','row 6','row 7', 'row 8','row 9']),
};
},
render: function() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData) => <Text>{rowData}</Text>}
initialListSize={5}
pageSize={1}
scrollRenderAheadDistance={20}
/>
);
},
});
var styles = StyleSheet.create({
});
AppRegistry.registerComponent('hellowrold',() => helloworld);
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-07_568e13f148231.jpg)
## Android
适用于Android