2016-08-29 7 views
7

私の反応するネイティブアプリでは、askonovのreact-native-router-fluxを使用して、垂直ScrollViewウィジェットを含むシーンを表示しています。シーンを下から浮かせるように設定しました。デフォルトでは、上からドラッグするとシーンが閉じられます。垂直スクロールビューと垂直ナビゲーションとの競合

<Router> <Scene key="root" hideNavBar={true}> <Scene key="welcome" component={Welcome}/> <Scene key="demo" component={Demo} direction="vertical"/> </Scene> </Router>

ScrollViewは、ユーザーがそれを上下にドラッグして期待されているので、画面上に表示することができるものよりもずっと多くを含んでいます。残念ながら、ドラッグダウンからクローズシーンの動作はScrollViewと競合しているように見えるので、ユーザーは意図せずにスクロールアップしたいときにシーンを閉じてしまいます。

具体的には、フリックジェスチャーが特に上書きされているようです。フリックアップすると、ScrollViewのコンテンツが飛び出ることはありませんが、フリックするとシーンが閉じられます。

React Native 0.32にアップグレードしたので、これは新しい動作です。私が0.22になったとき、フリックアップジェスチャーはScrollViewのコンテンツを手放すのにまだ役立った。

ScrollViewのコンテンツが既に完全にスクロールされている場合は、シーンを閉じるのが理想です。私は単純にフリック - クローズ動作を完全に無効にすることで解決します。

答えて

3

あなたのシーンの小道具にpanHandlers={null}を追加してみてください。それはフリック - クローズを無効にすべきだと私は信じている。

また、あなたはおそらく、ユーザーが一番上にすでにあるリスト(基本的には、プルダウン・ツー・リフレッシュアクションからプルダウンされたときにアクションを追加するにはScrollViewにRefreshControlを利用することができるが、代わりに、それは却下され、ハッキーだが働くことができる)。

+0

完璧!これはまさに私が感謝しなければならないものです:) – frank