UNPKG

react-native-viewpager

Version:
90 lines (77 loc) 1.64 kB
'use strict'; import React from 'react'; import { AppRegistry, StyleSheet, Text, View, Dimensions, ToastAndroid, Platform, AlertIOS, } from 'react-native'; var ViewPager = require('react-native-viewpager'); //var ViewPager = require('./ViewPager'); var deviceWidth = Dimensions.get('window').width; var PAGES = [ 'Page 0', 'Page 1', 'Page 2', 'Page 3', 'Page 4', ]; function notifyMessage(msg: string) { if (Platform.OS === 'android') { ToastAndroid.show(msg, ToastAndroid.SHORT) } else { AlertIOS.alert(msg); } } var ImagesScreen = React.createClass({ getInitialState: function() { var dataSource = new ViewPager.DataSource({ pageHasChanged: (p1, p2) => p1 !== p2, }); return { dataSource: dataSource.cloneWithPages(PAGES), }; }, render: function() { return ( <ViewPager style={this.props.style} dataSource={this.state.dataSource} renderPage={this._renderPage} onChangePage={this._onChangePage} isLoop={false} autoPlay={false}/> ); }, _renderPage: function( data: Object, pageID: number | string,) { return ( <View style={styles.page}> <Text style={styles.text}>{data}</Text> </View> ); }, _onChangePage: function( page: number | string ) { notifyMessage('Current page: ' + page); }, }); var styles = StyleSheet.create({ page: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, text: { fontSize: 20, textAlign: 'center', }, }); module.exports = ImagesScreen;