UNPKG

rn_supermap

Version:

rn_supermap 一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。

95 lines (85 loc) 2.37 kB
/********************************************************************************* Copyright © SuperMap. All rights reserved. Author: Zihao Wang E-mail: pridehao@gmail.com Description:内层list控件。 **********************************************************************************/ import React, { Component } from 'react'; import { StyleSheet, Text, View, Dimensions, Image, FlatList, PixelRatio, } from 'react-native'; //imobile类引入 import workspaceModule from '../Workspace.js'; import dataSources from '../Datasources.js'; import dataSource from '../Datasource.js'; import dataSet from '../Dataset.js'; export default class InnerListComponent extends Component { constructor(props){ super(props); var dataArr = []; var index = props.index; var workspace = props.workspace; (async function ( ) { var dataSources = await workspace.getDatasources(); var dataSource = await dataSources.get(index); var dSetCount = await dataSource.getDatasetCount(); for(var i=0;i<=dSetCount-1;i++){ var dataset = await dataSource.getDataset(i); var name = await dataset.getName(); var dataItem = {key:'_SMDset'+i,Text:name,Image:require('../resource/datasetList.png')}; dataArr.push(dataItem); } this.setState({ data: dataArr, }); }).bind(this)(); this.state = { data: false, }; } //item渲染方法 _renderItem=({item})=>( <View style={styles.itemContainer}> <Image style={styles.itemImage} source={item.Image}/> <Text style={styles.itemText}>{item.Text}</Text> </View> ); //分割线组件 _separator=()=>{ return <View style={{height:1 / PixelRatio.get(),backgroundColor: '#bbbbbb',marginLeft: 60,}}/> } render() { return ( <FlatList data={this.state.data} renderItem={this._renderItem} ItemSeparatorComponent={this._separator}/> ); } } const styles = StyleSheet.create({ itemContainer: { display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', width: Dimensions.get('window').width, height: 50, }, itemImage: { width:35, height:40, marginTop:5, marginBottom:5, marginLeft:70, backgroundColor:'transparent', }, itemText: { marginLeft:10, lineHeight:50, } });