ReactNative→Image布局

運行結果圖片
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

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

// 獲取json數據
var bags = require('./bags.json');

// 屏幕寬度
var Dimensions = require('Dimensions');
var {width} = Dimensions.get('window');

// 定義一些變量
var cosl = 3;
var itemW = 100;
var vmargin = (width - cosl*itemW) / (cosl+1);

export default class helloworld extends Component {

  render() {

    return (
      <View  style={styles.container}>

        {this.renderBags()}

      </View>
    );
  }


  renderBags(){

    var result = [];
    
    for (var i = 0; i < bags.data.length; i++) {

      var bag = bags.data[i];


      result.push(

          <View key={i} style={styles.item}>

            <Image source={require('./img/bag.png')} style={styles.imagesStyle}/>

            <Text style={{backgroundColor: "red"}}>

              {bag.name}

            </Text>

          </View>
      );

    }
    return result;

  }
}

const styles = StyleSheet.create({
  container: {
    // flex: 1,
    // justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
    // 改變主軸方向
    flexDirection: 'row',
    // 換行顯示
    flexWrap:'wrap',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
  item: {
    // 側軸居中
    alignItems:'center',
    marginTop : vmargin,
    backgroundColor: 'purple',
    marginLeft: vmargin,
    width:itemW,
    // height:itemW,
  },
  imagesStyle:{
    width : 80,
    height : 80,
    backgroundColor: 'green',
    marginTop:10,
  }
});

AppRegistry.registerComponent('helloworld', () => helloworld);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容