@@ -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