diff --git a/lib/SegmentedView.js b/lib/SegmentedView.js index fbd3255..5f72cab 100644 --- a/lib/SegmentedView.js +++ b/lib/SegmentedView.js @@ -1,8 +1,10 @@ var React = require('react'); -var { - PropTypes -} = React; +var PropTypes = require('prop-types'); + +var createReactClass = require('create-react-class'); + +var TimerMixin = require('react-timer-mixin'); var { StyleSheet, @@ -10,7 +12,8 @@ var { Image, View, TouchableHighlight, - Dimensions + Dimensions, + Platform } = require('react-native'); var screen = Dimensions.get('window'); @@ -45,9 +48,9 @@ var styles = StyleSheet.create({ }); -var SegmentedView = React.createClass({ +var SegmentedView = createReactClass({ - mixins: [tweenState.Mixin], + mixins: [tweenState.Mixin, TimerMixin], propTypes: { duration: PropTypes.number, @@ -91,7 +94,7 @@ var SegmentedView = React.createClass({ }, componentDidMount() { - setTimeout(() => this.moveTo(this.props.index), 0); + this.setTimeout(() => this.moveTo(this.props.index), 0); }, componentWillReceiveProps(nextProps) { @@ -99,6 +102,9 @@ var SegmentedView = React.createClass({ }, measureHandler(ox, oy, width) { + if(Platform.OS === 'android'){ + ox = this.props.index * width + } this.tweenState('barLeft', { easing: tweenState.easingTypes.easeInOutQuad, @@ -113,7 +119,7 @@ var SegmentedView = React.createClass({ onEnd: this.props.onTransitionEnd }); - setTimeout(this.props.onTransitionStart, 0); + this.setTimeout(this.props.onTransitionStart, 0); }, moveTo(index) { @@ -130,7 +136,7 @@ var SegmentedView = React.createClass({ renderTitle(title, i) { return ( - + this.props.onPress(i)}> {this.props.renderTitle ? this.props.renderTitle(title, i) : this._renderTitle(title, i)} diff --git a/package.json b/package.json index 43de724..74c5048 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-segmented-view", - "version": "2.0.0", + "version": "2.0.2", "description": "Segmented View for React Native (with animation)", "main": "index.js", "scripts": { @@ -24,7 +24,9 @@ }, "homepage": "https://github.com/lelandrichardson/react-native-segmented-view", "dependencies": { - "react-tween-state": "0.0.5" + "react-tween-state": "0.1.5", + "create-react-class": "15.6.2", + "react-timer-mixin": "0.13.3" }, "peerDependencies": { "react-native": ">=0.34.1"