React Native -- ListView的基本用法
来源:互联网 发布:网络思想政治教育提出 编辑:程序博客网 时间:2024/06/05 07:07
1.属性:
dataSource: 列表以来的数据源
initialListSize: 指定组件刚加载时渲染多少行数据
onChangeVisibleRows(function)可见row的集合变化时 调用此函数。
onEndReached(function): 所有数据已经被渲染,滚动到列表底部时会调用此函数,原生的滚动事件会被作为参数传递。第一次渲染时,数据不足以渲染整个屏幕,也会调用此函数。
onEndReachedThreshold: 调用onEndReached前的临界值
pageSize:每次事件循环渲染的行数。
renderRow (function):
(rowData, sectionID, rowID, highlightRow) => renderable
从数据源(Data source)中接受一条数据,以及它和它所在section的ID。返回一个可渲染的组件来为这行数据进行渲染。默认情况下参数中的数据就是放进数据源中的数据本身,不过也可以提供一些转换器。
如果某一行正在被高亮(通过调用highlightRow函数),ListView会得到相应的通知。当一行被高亮时,其两侧的分割线会被隐藏。行的高亮状态可以通过调用highlightRow(null)来重置
2. 方法:
scrollTo : 滚动到指定的x,y偏移处
scrollToEnd 滚动到视图的底部
3. 最基本的使用发放就是创建一个Listview.DataSource数据源,然后给它传递一个普通的数据数组,再用数据源实例化一个List View组件, 并定义它的renderRow回调函数,这个函数会接受数组中的每个数据作为参数,返回listView的每一行。
class TestListview extends React.Component { constructor(props) { super(props); var myData = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); this.state = { dataSource: myData.cloneWithRows(['list1','list2']); }; }_renderRow = function(rowData, rowId) { return( <Text>{rowData + ' ' + rowId}</Text> )} render() { return( <ListView dataSource = {this.state.dataSource} renderRow= {(rowData, rowId) => this._renderRow(rowData, rowId)} /> ); }}
Demo:
//@flow'use strict';import React, {Component} from 'react';import ReactNative, {AppRegistry} from 'react-native'import { Image, ListView, TouchableHighlight, StyleSheet, TouchableOpacity, Text, View,} from 'react-native';var THUMB_URLS = [ require('./Thumbnails/a.png'), require('./Thumbnails/b.png'),];var ListViewDemo = React.createClass({ getInitialState: function() { var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); return { dataSource: ds.cloneWithRows(['hello1', 'hello2']), } }, _renderRow: function(rowData, sectionId, rowId) { var imgSource = THUMB_URLS[rowId]; return( <TouchableOpacity> <View> <View style={styles.row}> <Image style={styles.thumb} source={imgSource}/> <Text style={{flex:1, fontSize:16, coloe:'blue'}}> {rowData + 'hihihihhi'} </Text> </View> </View> </TouchableOpacity> ); }, render: function() { return( <ListView dataSource={this.state.dataSource} renderRow={this._renderRow}/> ); }});var styles = StyleSheet.create({ row:{ flexDirection:'row', padding:10, justifyContent:'center', backgroundColor:'#F6F6F6', }, thumb: { width:50, height:50, }, });AppRegistry.registerComponent('HiFang', () => ListViewDemo);
- React Native -- ListView的基本用法
- react-native ListView的简单用法
- React native FlexBox布局的基本用法
- React Native的组件ListView
- react-native的ListView控件的使用
- React Native中ListView的简单使用
- react native 实现ListView的局部更新
- React Native ListView的滚动scrollTo
- react-native播放视频组件 react-native-video的用法
- react-native listView 分节
- React-Native 中的ListView
- React-native listview换行
- react-native 水平ListView
- React-Native ListView学习
- React-Native ListView
- React native ListView初识
- React-Native 之ListView
- react-native listview使用
- Java判断回文字符串
- 挑客 客服语录
- HTML常用标记、CSS三种选择器
- opencv导入txt数据,画两幅图像的匹配点(像素精度)
- [Leetcode 123] Best Time to Buy and Sell Stock III
- React Native -- ListView的基本用法
- 解决IE8兼容性视图问题
- 业绩归因 绩效评估
- 登陆密码加密与验证
- 初识RxJava
- 普通打印机,双面打印技巧
- MySQL 处理重复数据
- Java中字符串及正则表达式简介
- java-jacob操作word,往word中动态插入各种文件