/** * Created by zack on 2018/4/27. */ import { View, Text, StyleSheet, TouchableOpacity, Platform, Image, } from 'react-native' import React, {Component} from 'react' import {NavigationBarHeight, TabBarHeight, ScreenDimensions} from '../../../utils/DimensionsTools' export default class VocabularyImageView extends Component { constructor(props) { super(props) this.state = { selectedIndex: -1, correctIndex: props.correctIndex, isVerified: props.isVerified } } componentWillReceiveProps(props) { this.setState({ correctIndex: props.correctIndex, isVerified: props.isVerified }) } renderItems() { let titles = ["dog", 'cat', 'sun', 'moon'] let items = [] let deselectImageSource = require('../../../resources/images/TabBar/Learn/btn_normal.png') let selectImageSource = require('../../../resources/images/TabBar/Learn/btn_seleted.png') let selectCorrectedImageSource = require('../../../resources/images/TabBar/Learn/btn_correct.png') for(let i = 0 ; i < titles.length; i ++) { let imageSource = null if (!this.state.isVerified) { //还没有进行验证 if (i === this.state.selectedIndex) { imageSource = selectCorrectedImageSource }else { imageSource = deselectImageSource } }else { //已经验证了 if (this.state.selectedIndex === this.state.correctIndex) { // 答对了 if (i === this.state.selectedIndex) { imageSource = selectCorrectedImageSource }else { imageSource = deselectImageSource } }else { //回答错误了 if (i === this.state.selectedIndex) { imageSource = selectImageSource }else if (i === this.state.correctIndex) { imageSource = selectCorrectedImageSource }else { imageSource = deselectImageSource } } } let item = ( { this.props.didSelectedItem(i) this.setState({selectedIndex: i}) }} key={i} style={[styles.ItemBgView, {marginLeft: i%2 === 0 ? 23: 14, marginTop: i < 2 ? 0 : 14 }]}> {'dog'} ) items.push(item) } return items } render() { return( {this.renderItems()} ) } } const styles = StyleSheet.create({ View: { width: ScreenDimensions.width, marginTop: 20, flexWrap: 'wrap', flexDirection: 'row' }, ItemBgView: { width: (ScreenDimensions.width - 23 - 23 - 14)/2.0, //height: (ScreenDimensions.width - 23 - 23 - 14)/2.0*165/150.0, borderRadius: 8, borderColor: '#d2d2d2', borderWidth: 1, justifyContent: 'space-between', }, ImageView: { width: (ScreenDimensions.width - 23 - 23 - 14)/2.0 - 30, height:(ScreenDimensions.width - 23 - 23 - 14)/2.0 - 30, marginLeft: 15, marginTop: 15, }, TitleBgView: { width: (ScreenDimensions.width - 23 - 23 - 14)/2.0 - 30, flexDirection: 'row', alignItems: 'center', marginTop: 17, marginBottom: 11, }, SelectedImageView: { width: 22, height: 22, marginLeft: 7, }, Title: { fontSize: 16, color: '#333333', marginLeft: 11, } })