美文网首页
汽车列表展示

汽车列表展示

作者: 小刘_假装是个程序员 | 来源:发表于2017-12-05 12:53 被阅读0次

react-native init Cars --version 0.44.3

image.png image.png
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

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

var carData=require('./Car');

var Cars = React.createClass({
  getInitialState(){
    var getSectionData = (dataBlob,sectionID)=>{
      return dataBlob[sectionID]
    };

    var getRowData= ( dataBlob, sectionID, rowID) => {
      return dataBlob[sectionID + ':' + rowID];
    };

    return{
      loaded:false,
      dataSource: new ListView.DataSource({
        getSectionData  :getSectionData,
        getRowData      :getRowData,
        rowHasChanged   :(row1, row2)=> row1 !== row2,
        sectionHeaderHasChanged :(s1, s2)=> s1 !== s2
      })
    }
  },
  render(){
    return(
    <View style={styles.outViewStyle}>
      <View style={styles.headViewStyle}>
        <Text style={styles.headerTitleStyle}>汽车品牌列表</Text>
      </View>
      <ListView
        dataSource={this.state.dataSource}
        style={styles.listViewStyle}
        renderRow={this.renderRow}
        renderSectionHeader={this.renderSectionHeader}
      />
    </View>
    )
  },
  //
  renderRow(rowData, sectionID, rowID){
    return(
      <TouchableOpacity activeOpacity={0.5}>
        <View style={styles.rowStyle}>
          <Image source={{uri:rowData.icon}} style={styles.carImageStyle}/>
          <Text style={styles.rowTitleStyle}>{rowData.name}</Text>
        </View>
      </TouchableOpacity>
    )
  },
  //
  renderSectionHeader:function(sectionData, sectionID){
    return(
      <View style={styles.sectionStyle}>
        <Text style={styles.sectionTitleStyle}>{sectionData}</Text>
      </View>

    )
  },
  componentDidMount(){
    this.loadDataFromJson();
  },
  loadDataFromJson(){
    //json数据
    var jsonData=carData.data;
    console.log(jsonData);
    //定义相关变量
    var dataBlob={},
      sectionIDs=[],
      rowIDs=[],
      cars=[]
    for(var i=0; i<jsonData.length; i++){
      sectionIDs.push(i+1);
      dataBlob[i+1]=jsonData[i].title;
      cars=jsonData[i].cars;
      rowIDs[i]=[];
      for(var j=0; j<cars.length; j++){
        //设置行标识
        rowIDs[i].push(j);
        //根据唯一的组加行标识把数据放入dataBlob中
        dataBlob[i+1 + ':' + j] = cars[j];
      }
    }
    this.setState({
      dataSource:this.state.dataSource.cloneWithRowsAndSections(dataBlob,sectionIDs, rowIDs)
    });
  },


});

const styles=StyleSheet.create({
  outViewStyle:{


  },
  headViewStyle:{
    width: 375,
    height: 64,
    alignItems:'center',
    justifyContent:'center',
    borderBottomWidth: 1,
    borderBottomColor: '#dddddd'
  },
  rowStyle:{
    flexDirection: 'row',
    alignItems:'center',
    borderBottomWidth: 1,
    borderBottomColor: '#dddddd'
  },
  carImageStyle:{
    width:50,
    height:50,
    margin:10
  },
  rowTitleStyle:{
    fontSize: 20,
    color: 'red',
  },
  headerTitleStyle:{
    marginTop: 10,
    fontSize: 20,
    // backgroundColor: 'red'
  },
  lineViewStyle:{

  },
  listViewStyle:{

  },
  sectionStyle:{
    width: 375,
    height: 20,
    alignItems:'center',
    justifyContent:'center'
  },
  sectionTitleStyle:{
    fontSize: 18,
  }
});


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

相关文章

  • 汽车列表展示

    react-native init Cars --version 0.44.3

  • 08.HTML列表

    无序列表 展示图片 有序列表 展示图片 定义列表 示例图片

  • flutter ListView列表组件

    纵向列表 main.dart文件: 纵向列表效果展示: 横向列表 main.dart文件: 【横向列表】效果展示(...

  • linux简单操作指令

    1.ls 展示列表 2.ls -a 展示所有列表矩阵展示 3.ls -l 列表展示文件 不包括隐藏文件 4.ls ...

  • 2019-02-28第3次 列表

    第3次 列表 知识点 会使用有序列表实现数据展示 会使用无序列表实现数据展示【重点】 会使用定义列表实现数据展示【...

  • PhoneBook-1【开发记录-固定数据进行拨打电话】

    今天做的功能 列表展示 拨打电话 列表展示 打开软件,首页即展示联系人列表。目前使用的是两条测试数据,界面展示如下...

  • 微信小程序信息展示列表

    微信小程序信息展示列表 效果展示: 代码展示:

  • HTML-无序列表

    一、无序列表 1-1无序列表介绍 1-2无序列表展示 二、有序列表 2-1有序列表介绍 2-2有序列表展示

  • 第三次课 列表

    知识点 1.会使用有序列表实现数据展示 2.会使用无序列表实现数据展示【重点】 3.会使用定义列表实现数据展示【重...

  • Instance_NewsListOnDifferenceScr

    主题:新闻展示(平板/手机) 明确思路 当打开手机模拟器时:出现新闻列表,列表只展示标题,点击后可以进入展示完整新...

网友评论

      本文标题:汽车列表展示

      本文链接:https://www.haomeiwen.com/subject/piaqixtx.html