最近、スクロールビューでいくつかの問題が発生しています。フリングが発生した後、タッチ イベントはスクロールビュー内の要素に到達しません。フリングが発生した後、まずビューをもう一度タップする必要があります。その後、通常の動作が復元されます。私はすでに次のような多くの回避策を試しました:
- フリング後に手動でモーション イベント (アップ/ダウン) を発生させます。これは機能しますが、いくつかの深刻な問題があります。これは、特定の x+y でビューに再度触れることと同じであるため、推測する理由を説明する必要はありません。
- タッチ イベントをインターセプトし、常に下層のビューに渡します。
しかし、これはすべて非常に面倒で、そもそも望ましくない動作のように思えませんか?
スクロールビューは、オンフリングが発生した後、新しい通常の(フリングなしの)上下のタッチまですべてを傍受するようです。
<android.support.v4.widget.NestedScrollView
android:id="@+id/fsv_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/white">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/marker"
android:padding="@dimen/spacing_small"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_jobs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>