2016-10-07 39 views

回答

7

它的工作!

var windowHeight = Dimensions.get('window').height, 
      height = e.nativeEvent.contentSize.height, 
      offset = e.nativeEvent.contentOffset.y; 
if(windowHeight + offset >= height){ 
    console.log('End Scroll') 
} 
+2

很好用。別忘了從'react-native''導入{Dimensions} – animatedgif

2

您應該將一個函數傳遞給onScroll支持ScrollView

更多信息可查詢here

constructor(props){ 
    super(props) 

    this._onScroll = this._onScroll.bind(this) 
    this.state = { 
     contentOffsetY: 0 
    } 
    } 

_onScroll(e){ 
    var contentOffset = e.nativeEvent.contentOffset.y; 
    this.state.contentOffsetY < contentOffset ? console.log("Scroll Down") : console.log("Scroll Up"); 
    this.setState({contentOffsetY: contentOffset}); 
    } 

    render(){ 
    var items = ["1","2","3","4","5"]; 
    return(
     <ScrollView style={{flex: 1}} onScroll={this._onScroll}> 
     {items.map((item, i) => { 
      return (
      <View key={i} style={{height: 200}}> 
       <Text>{item}</Text> 
      </View> 
     ) 
     })} 
     </ScrollView> 
    ) 
    } 
+0

謝謝Melih Mucuk。但是,我如何知道我處於ScrollView的底部(ScrollView的結尾)。謝謝。 – jackmin

+0

在e.nativeEvent中有一個名爲「contentSize」的道具。你爲什麼不記錄它,看看這是怎麼回事?你應該比較contentOffsetY和contentSizeY。例如(contentSizeY - contentOffsetY)<100,滾動視圖結束時只有100個像素。 @jackmin –

+2

var windowHeight = Dimensions.get('window')。height, height = e.nativeEvent.contentSize.height, offset = e.nativeEvent.contentOffset.y; (windowHeight + offset> = height){ console.log('End ScrollView') } – jackmin

相關問題