01.列表布局

代码如下:

import React, {Component} from 'react';
import{
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Image,
  Dimensions
} from 'react-native';

//导入本地json数据
var BadgeData = require('./BadgeData.json');

//定义全局变量
var Dimension = require('Dimensions');
var {width} = Dimensions.get('window');

var columns = 3;//列数
var boxW = 100;//宽度
var vMargin=  (width - columns * boxW) / (columns + 1);
var hMargin = 25;

class AImageDemo extends Component {
  render() {
    return (
      <View style={styles.container}>
        {this.renderAllBadge()}
      </View>
    );
  }
  //返回所有的包
  renderAllBadge() {
    //定义数组装所有的子组件
    var allBadge = [];
    for(var i = 0; i < BadgeData.data.length; i++) {
      //取出单独的数据对象
      var badge = BadgeData.data[i];
      //去除数据装入数组
      allBadge.push(
        <View key={i} style={styles.outViewStyle}> 
          <Image source={{uri:badge.icon}} style={styles.imageStyle}/>
          <Text style={styles.mainTitleStyle}>
            {badge.title}
          </Text>
        </View>
      );
    }
    return allBadge;
  }
}

const styles = StyleSheet.create({
  container: {
    flex:1,
    backgroundColor: '#F5FCFF',
    //主轴的方向
    flexDirection:"row",
    //换行显示
    flexWrap:'wrap'
  },

  outViewStyle:{
    backgroundColor:'red',
    //设置侧轴的对齐方式
    alignItems:'center',
    width:boxW,
    height:boxW,
    marginLeft:vMargin,
    marginTop:hMargin
  },
  
  imageStyle:{
    width:80,
    height:80
  },
  mainTitleStyle:{
    
  }
});

export default AImageDemo;

BadgeData.json

{
    "data":[
        {
            "icon": "baobao1",
            "title": "包包1"
        },
        {
            "icon": "baobao2",
            "title": "包包2"
        },
        {
            "icon": "baobao3",
            "title": "包包3"
        },
        {
            "icon": "baobao4",
            "title": "包包4"
        },
        {
            "icon": "baobao5",
            "title": "包包5"
        },
        {
            "icon": "baobao6",
            "title": "包包6"
        },
    ]
}

输出如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值