Skip to content

Commit a10437d

Browse files
committed
Update selected page on swiping
1 parent caa2812 commit a10437d

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

index.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,23 +66,34 @@ var ScrollableTabView = React.createClass({
6666
if (Platform.OS === 'ios') {
6767
return (
6868
<ScrollView
69+
horizontal
70+
pagingEnabled
6971
style={styles.scrollableContentIOS}
70-
horizontal={true}
7172
ref={(scrollView) => { this.scrollView = scrollView }}
7273
onScroll={(e) => {
7374
var offsetX = e.nativeEvent.contentOffset.x;
7475
this._updateScrollValue(offsetX / deviceWidth);
7576
}}
77+
onMomentumScrollBegin={(e) => {
78+
var offsetX = e.nativeEvent.contentOffset.x;
79+
this._updateSelectedPage(parseInt(offsetX / deviceWidth));
80+
}}
81+
onMomentumScrollEnd={(e) => {
82+
var offsetX = e.nativeEvent.contentOffset.x;
83+
this._updateSelectedPage(parseInt(offsetX / deviceWidth));
84+
}}
7685
scrollEventThrottle={16}
77-
directionalLockEnabled={true}
78-
pagingEnabled={true}>
86+
showsHorizontalScrollIndicator={false}
87+
directionalLockEnabled
88+
alwaysBounceVertical={false}>
7989
{this.props.children}
8090
</ScrollView>
8191
);
8292
} else {
8393
return (
8494
<ViewPagerAndroid
8595
style={styles.scrollableContentAndroid}
96+
onPageSelected={this._updateSelectedPage}
8697
onPageScroll={(e) => {
8798
const {offset, position} = e.nativeEvent;
8899
this._updateScrollValue(position + offset);
@@ -96,6 +107,13 @@ var ScrollableTabView = React.createClass({
96107
}
97108
},
98109

110+
_updateSelectedPage(currentPage) {
111+
if (typeof currentPage === 'object') {
112+
currentPage = currentPage.nativeEvent.position;
113+
}
114+
this.setState({currentPage});
115+
},
116+
99117
_updateScrollValue(value) {
100118
this.state.scrollValue.setValue(value);
101119
},

0 commit comments

Comments
 (0)