私はhttps://facebook.github.io/react-native/docs/scrollview.htmlを使用していますが、それは便利なonScroll
小道具を持っていますが、ユーザーがスクロールを停止したときにどうすればよいですか?ユーザーがスクロールを停止したときを確認するにはどうすればよいですか?
基本的には、ユーザーがスクロールしているときにボタンを非表示にしたいときは、非表示のときに表示します。
私はhttps://facebook.github.io/react-native/docs/scrollview.htmlを使用していますが、それは便利なonScroll
小道具を持っていますが、ユーザーがスクロールを停止したときにどうすればよいですか?ユーザーがスクロールを停止したときを確認するにはどうすればよいですか?
基本的には、ユーザーがスクロールしているときにボタンを非表示にしたいときは、非表示のときに表示します。
コンポーネント状態では、スクロールイベントを受け取った最後の時刻を保存します。レンダリングメソッドでは、最後のスクロールイベントがいつ発生したかを確認し、ボタンが再び表示されるかどうかを決定します。
ラフ例:
// 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.
}
素晴らしいアイデアを助けるかもしれない、この文書をお読みください。 – kayla
これを試しましたが、スクロールしてから300ms後にボタンが消えてしまいましたが、スクロールを止めて再びボタンを表示させると、タイマーがリセットされません。これに関する提案はありますか? – kayla
この場合、300ms後に 'setState({displayButton:true})'となる 'setTimeout'を使うことをお勧めします。スクロールイベントを受け取るたびにタイムアウトをキャンセルし、直ちに再初期化します。最初にボタンを表示し、最初のスクロールで非表示にするロジックを追加する必要があります。 – FMCorz
(https://facebook.github.io/react-native/docs/gesture-responder-system.html)nativeEvent要素はあなたに –