EmojiView.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import React, {Component} from 'react';
  2. import Global from '../utils/Global';
  3. import Smiley from '../utils/Smiley';
  4. import {Dimensions, Image, StyleSheet, View, ViewPagerAndroid,} from 'react-native';
  5. const {width} = Dimensions.get('window');
  6. export default class EmojiView extends Component {
  7. render() {
  8. return (
  9. <ViewPagerAndroid
  10. style={styles.viewPager}
  11. initialPage={0}>
  12. <View style={styles.pageStyle}><Page index={0}/></View>
  13. <View style={styles.pageStyle}><Page index={1}/></View>
  14. <View style={styles.pageStyle}><Page index={2}/></View>
  15. </ViewPagerAndroid>
  16. );
  17. }
  18. }
  19. class Page extends Component {
  20. render() {
  21. var page = [];
  22. for (var j = 0; j < 3; j++) {
  23. var row = [];
  24. for (var i = 0; i < 7; i++) {
  25. if (i == 6 && j == 2) {
  26. row.push(
  27. <View key={i}
  28. style={{flex: 1, justifyContent: 'center', alignItems: 'center', paddingTop: 10, paddingBottom: 10,}}>
  29. <Image source={Smiley.data[105]} style={styles.emojiDelIcon}/>
  30. </View>
  31. );
  32. } else {
  33. row.push(
  34. <View key={i}
  35. style={{flex: 1, justifyContent: 'center', alignItems: 'center', paddingTop: 10, paddingBottom: 10,}}>
  36. <Image source={Smiley.data[i * 7 + j + this.props.index * 20]} style={styles.emojiIcon}/>
  37. </View>
  38. );
  39. }
  40. }
  41. page.push(
  42. <View key={"row" + j} style={{flexDirection: 'row', height: Global.emojiViewHeight / 3}}>
  43. {row}
  44. </View>
  45. );
  46. }
  47. return (
  48. <View>{page}</View>
  49. );
  50. }
  51. }
  52. const styles = StyleSheet.create({
  53. viewPager: {
  54. width: width,
  55. height: Global.emojiViewHeight,
  56. backgroundColor: '#F4F4F4',
  57. },
  58. pageStyle: {
  59. width: width,
  60. paddingLeft: 5,
  61. paddingRight: 5,
  62. },
  63. emojiIcon: {
  64. width: 30,
  65. height: 30,
  66. },
  67. emojiDelIcon: {
  68. width: 30,
  69. height: 24,
  70. }
  71. });