RN实现iOS tableview分组吸顶效果
2016-12-18 18:29
591 查看
/** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, ListView, Image, TouchableOpacity } from 'react-native'; var Car = require('./Car.json'); var ListDemo3 = React.createClass({ getInitialState(){ return{ ds: new ListView.DataSource({ getSectionData: (dataBlob, sectionID) => dataBlob[sectionID], getRowData: (dataBlob, sectionID, rowID) => dataBlob[sectionID + ':' + rowID], rowHasChanged: (r1, r2) => r1 !== r2, sectionHeaderHasChanged:(s1, s2) => s1 !== s2 }) } }, componentDidMount(){ var jsonData = Car.data; var dataBlob = {}, sectionIDs = [], rowIDs = [], cars = []; for(var i=0; i<jsonData.length; i++){ sectionIDs.push(i); dataBlob[i] = jsonData[i].title; cars = jsonData[i].cars; rowIDs[i] = []; for(var j=0; j<cars.length; j++){ rowIDs[i].push(j); dataBlob[i+':'+j] = cars[j]; } } this.setState({ ds: this.state.ds.cloneWithRowsAndSections(dataBlob,sectionIDs,rowIDs) }); }, render() { return ( <View style={styles.outerViewStyle}> <View style={styles.headerViewStyle}> <Text style={{color:'white', fontSize:20}}>tableview吸顶效果Demo</Text> </View> <ListView dataSource={this.state.ds} renderRow={this.renderRow} renderSectionHeader={this.renderSectionHeader} /> </View> ); }, renderRow(row){ return( <TouchableOpacity activeOpacity={0.5}> <View style={styles.rowStyle}> <Image source={{uri: row.icon}} style={styles.rowImageStyle}/> <Text style={{marginLeft:8}}>{row.name}</Text> </View> </TouchableOpacity> ); }, renderSectionHeader(sectionData, sectionID){ return( <View style={styles.sectionHeaderViewStyle}> <Text style={{marginLeft:8, color:'white'}}>{sectionData}</Text> </View> ); } }); const styles = StyleSheet.create({ outerViewStyle:{ flex:1 }, headerViewStyle:{ height:44, backgroundColor:'orange', justifyContent:'flex-end', alignItems:'center' }, rowStyle:{ flexDirection:'row', alignItems:'center', padding:8, borderBottomColor:'#EEEEEE', borderBottomWidth:0.5 }, rowImageStyle:{ width:60, height:60, }, sectionHeaderViewStyle:{ backgroundColor:'#BBBBBB', height:20, justifyContent:'center' } }); AppRegistry.registerComponent('ListDemo3', () => ListDemo3);
相关文章推荐
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS tableView顶部图片下拉缩放效果实现
- IOS_实现tableview向上滚动全屏效果与点击展开动画
- ios实现tableView顶部弹簧图片效果
- iOS 类似美团外卖app两个tableView联动效果实现
- iOS tableView实现下拉图片放大效果
- iOS下用一行代码实现tableview(collectionview)的parallax效果
- IOS详解TableView——实现九宫格效果
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS下拉tableView实现上面的图片放大效果
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- IOS实现左右两个TableView联动效果
- iOS tableview实现顶部拉伸效果
- iOS—在tableView上实现始终在屏幕底部有一个button的效果
- iOS tableView实现顶部图片拉伸效果
- iOS TableView头视图根据偏移量下拉缩放的效果实现
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS开发之UICollectionView的headerView实现与TableView一样的漂浮效果
- iOS 类似美团外卖 app 两个 tableView 联动效果实现