ReactNative 中 ListView实现GridView效果
2016-10-20 18:42
591 查看
在RN中ListVIew拥有ScrollView的所有属性,所以可以吧ListView当成是ScrollView的一种延伸,在RN中虽然不存在父子类,不过我觉的可以把 ListView当成ScrollView的子类来看。
所以改变ListView的排列方式其实就是改变lIstView的主轴的方向。
所以改变ListView的排列方式其实就是改变lIstView的主轴的方向。
/** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, {Component} from 'react'; import { AppRegistry, StyleSheet, Text, View, ListView, Image, TouchableOpacity, AlertIOS } from 'react-native'; var Dimensions = require('Dimensions'); var {width} = Dimensions.get('window'); var {height} = Dimensions.get('window'); var shareData = require('./shareData.json').data; var GridView = React.createClass({ getDefaultProps(){ return{ // ..ListView.propTypes } }, getInitialState(){ var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); return { dataSource:ds.cloneWithRows(shareData) } }, render(){ return ( <ListView dataSource={this.state.dataSource} renderRow={this.renderRow} contentContainerStyle={styles.listStyle} showsVerticalScrollIndicator={false} showsHorizontalScrollIndicator={false} /> ) }, // 返回Item试图 renderRow(rowData,sectionId,rowId,hItemId){ return( <TouchableOpacity style={styles.itemViewStyle} onPress={() => {AlertIOS.alert(rowId)}} > <View style={styles.itemViewStyle}> <Image source={{uri:rowData.icon}} style={styles.itemIconStyle}/> <Text style={styles.itemTitleStyle}>{rowData.title}</Text> </View> </TouchableOpacity> ) } }) const styles = StyleSheet.create({ listStyle:{ flexDirection:'row', //改变ListView的主轴方向 flexWrap:'wrap', //换行 }, itemViewStyle:{ alignItems:'center', //这里要注意,如果每个Item都在外层套了一个 Touchable的时候,一定要设置Touchable的宽高 width: width / 3, height:100 }, itemIconStyle:{ width:60, height:60 }, itemTitleStyle:{ marginTop:8 } }); module.exports = GridView;
相关文章推荐
- ReactNative基础(四)了解ListView的使用、实现GridView效果、编写一个真实网络请求案例
- React Native之ListView实现九宫格效果
- React-Native应用ListView实现上拉下拉刷新效果实践
- React Native 基础 之ListView实现吸顶效果
- React Native ListView sticky效果实现
- React Native之ListView实现九宫格效果
- ReactNative中ListView的实现效果
- React Native之ListView实现九宫格效果
- listview、GridView单点击效果,点击改变背景改变item字体颜色实现
- ListView和GridView实现单选效果
- listview或者gridview 实现单选效果
- 使用RecyclerView实现ListView,GridView效果
- React-native 实现表情商城 表情长按拖动预览(还原安卓微信效果)
- Android5.x:RecycleView(一):实现ListView + GridView + StaggeredGridLayou效果
- listview中内嵌gridview实现子菜单选择效果
- RecyclerView实现ListView和GridView的效果
- ListView和GridView实现单选效果
- 在ListView或GridView 中使用到跑马灯滚动效果实现的问题。
- React-Native ListView加载图片淡入淡出效果的组件
- 使用react-native-pull实现跨平台Android&IOS下拉刷新滑动回弹效果