用ListView实现九宫格布局
来源:互联网 发布:青少年暴力犯罪数据 编辑:程序博客网 时间:2024/05/22 03:32
相关技术点:
通常情况下,我们对ListView的操作是纵向的,如果是横向的,则需要设置ListView的contentContainerStyle属性,添加flexDirection:‘row’让多个ListView在同一行显示,而且通过flexWrap:’wrap’进行换行。
运行效果图:
代码如下:
/** * 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');const screenW = Dimensions.get('window').width;// 导入json数据var shareData = require('./shareData.json');// 一些常亮设置const cols = 3;const cellWH = 100;const vMargin = (screenW - cellWH * cols) / (cols + 1);const hMargin = 25;// ES5var ListViewDemo2 = React.createClass({ // 初始化状态值(可以变化) getInitialState(){ // 创建数据源 var ds = new ListView.DataSource({rowHasChanged:(r1,r2) => r1 !== r2}); return{ dataSource:ds.cloneWithRows(shareData.data) } }, render(){ return( <ListView dataSource={this.state.dataSource} renderRow={this.renderRow} contentContainerStyle={styles.listViewStyle} /> ); }, // 返回cell renderRow(rowData){ return( <TouchableOpacity activeOpacity={0.8} onPress={()=>{AlertIOS.alert('点击了')}} > <View style={styles.innerViewStyle}> <Image source={{uri:rowData.icon}} style={styles.iconStyle} /> <Text>{rowData.title}</Text> </View> </TouchableOpacity> ); },});const styles = StyleSheet.create({ listViewStyle:{ // 主轴方向 flexDirection:'row', // 一行显示不下,换一行 flexWrap:'wrap', // 侧轴方向 alignItems:'center', // 必须设置,否则换行不起作用 }, innerViewStyle:{ width:cellWH, height:cellWH, marginLeft:vMargin, marginTop:hMargin, // 文字内容居中对齐 alignItems:'center' }, iconStyle:{ width:80, height:80, },});AppRegistry.registerComponent('ListViewDemo2', () => ListViewDemo2);
1 0
- 用ListView实现九宫格布局
- 九宫格布局实现
- GridView实现九宫格布局
- GirdLayout布局实现九宫格
- 用RelativeLayout 实现简单的九宫格布局
- android中九宫格布局的实现
- 对于android九宫格布局的实现
- 实现Android九宫格布局的代码
- 使用GridView实现九宫格布局
- 九宫格主页布局的实现
- css3技巧实现九宫格布局
- GridView实现常用九宫格布局
- 纯代码布局实现九宫格
- React Native 之ListView及九宫格布局
- 九宫格布局
- 九宫格布局
- 九宫格布局练习
- 九宫格布局
- CodeForces 367C Hard problem DP
- 深入类加载器一
- jni的c学习
- Linux中select poll和epoll的区别
- Mac OSX El Capitan 10.11 安装nginx(http2) php7.0 mysql5.7 开发环境
- 用ListView实现九宫格布局
- 大数据IMF传奇行动绝密课程第31课:Spark资源调度分配内幕天机彻底解密
- 目前比较全的CSS重设(reset)方法总结
- Linux下比较好用的性能监控工具
- 第五章JSP(1)
- 1.1两个char类型数据相加后,转化为int类型
- RxJava笔记
- 王爽《汇编语言》实验11——编写子程序
- 107. Binary Tree Level Order Traversal II