2016-10-11 17 views
0

私はhttps://facebook.github.io/react-native/docs/scrollview.htmlを使用していますが、それは便利なonScroll小道具を持っていますが、ユーザーがスクロールを停止したときにどうすればよいですか?ユーザーがスクロールを停止したときを確認するにはどうすればよいですか?

基本的には、ユーザーがスクロールしているときにボタンを非表示にしたいときは、非表示のときに表示します。

+0

(https://facebook.github.io/react-native/docs/gesture-responder-system.html)nativeEvent要素はあなたに –

答えて

1

コンポーネント状態では、スクロールイベントを受け取った最後の時刻を保存します。レンダリングメソッドでは、最後のスクロールイベントがいつ発生したかを確認し、ボタンが再び表示されるかどうかを決定します。

ラフ例:

// Observe the scroll events. 
<ScrollView onScroll={(e) => { 
    this.setState({lastScroll: new Date()}) 
}} /> 

// Check if the last scroll happened later than 300ms ago. 
if (this.state.lastScroll.getTime() < (new Date()).getTime() - 300) { 
    // Render the button. 
} 
+0

素晴らしいアイデアを助けるかもしれない、この文書をお読みください。 – kayla

+0

これを試しましたが、スクロールしてから300ms後にボタンが消えてしまいましたが、スクロールを止めて再びボタンを表示させると、タイマーがリセットされません。これに関する提案はありますか? – kayla

+0

この場合、300ms後に 'setState({displayButton:true})'となる 'setTimeout'を使うことをお勧めします。スクロールイベントを受け取るたびにタイムアウトをキャンセルし、直ちに再初期化します。最初にボタンを表示し、最初のスクロールで非表示にするロジックを追加する必要があります。 – FMCorz

関連する問題