No Description

VocabularyTextView.js 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /**
  2. * Created by zack on 2018/4/27.
  3. */
  4. import {
  5. View,
  6. Text,
  7. StyleSheet,
  8. TouchableOpacity,
  9. Platform,
  10. Image
  11. } from 'react-native'
  12. import React, {Component} from 'react'
  13. import {NavigationBarHeight, TabBarHeight, ScreenDimensions} from '../../../utils/DimensionsTools'
  14. export default class VocabularyTextView extends Component {
  15. constructor(props) {
  16. super(props)
  17. this.state = {
  18. selectedIndex: -1,
  19. correctIndex: props.correctIndex,
  20. isVerified: props.isVerified
  21. }
  22. }
  23. componentWillReceiveProps(props) {
  24. this.setState({
  25. correctIndex: props.correctIndex,
  26. isVerified: props.isVerified
  27. })
  28. }
  29. renderItems() {
  30. let itemTitles = [{text: '单词', noun: 'dān cí '},
  31. {text: '单词', noun: 'dān cí '},
  32. {text: '单词', noun: 'dān cí '},
  33. {text: '单词', noun: 'dān cí '}]
  34. let items = []
  35. let deselectImageSource = require('../../../resources/images/TabBar/Learn/btn_normal.png')
  36. let selectImageSource = require('../../../resources/images/TabBar/Learn/btn_seleted.png')
  37. let selectCorrectedImageSource = require('../../../resources/images/TabBar/Learn/btn_correct.png')
  38. for (let i =0; i < itemTitles.length; i ++) {
  39. let imageSource = null
  40. if (!this.state.isVerified) { //还没有进行验证
  41. if (i === this.state.selectedIndex) {
  42. imageSource = selectCorrectedImageSource
  43. }else {
  44. imageSource = deselectImageSource
  45. }
  46. }else { //已经验证了
  47. if (this.state.selectedIndex === this.state.correctIndex) { // 答对了
  48. if (i === this.state.selectedIndex) {
  49. imageSource = selectCorrectedImageSource
  50. }else {
  51. imageSource = deselectImageSource
  52. }
  53. }else { //回答错误了
  54. if (i === this.state.selectedIndex) {
  55. imageSource = selectImageSource
  56. }else if (i === this.state.correctIndex) {
  57. imageSource = selectCorrectedImageSource
  58. }else {
  59. imageSource = deselectImageSource
  60. }
  61. }
  62. }
  63. let item = (
  64. <TouchableOpacity style={styles.ItemBgView} onPress={() => {
  65. this.props.didSelectedItem(i)
  66. this.setState({selectedIndex: i})
  67. }} key = {i} >
  68. <Image source={imageSource} style={styles.ImageView} />
  69. <Text style={styles.Text}>{itemTitles[i].text}</Text>
  70. <Text style={styles.Text}>{itemTitles[i].noun}</Text>
  71. </TouchableOpacity>
  72. )
  73. items.push(item)
  74. }
  75. return items
  76. }
  77. render() {
  78. return (
  79. <View style={styles.View}>
  80. {this.renderItems()}
  81. </View>
  82. );
  83. }
  84. }
  85. const styles = StyleSheet.create({
  86. View: {
  87. width: ScreenDimensions.width,
  88. height: 208,
  89. justifyContent: 'space-between',
  90. alignItems: 'center'
  91. },
  92. ItemBgView: {
  93. flexDirection: 'row',
  94. alignItems: 'center',
  95. },
  96. ImageView: {
  97. width: 22,
  98. height: 22,
  99. },
  100. Text: {
  101. fontSize: 16,
  102. marginLeft: 8,
  103. color: '#333333'
  104. }
  105. })