2
2つのネストされたRecyclerView
があります。そのうちの1つは垂直スワイプを管理し、その1つは水平スワイプを処理します。私が直面している問題は、水平RecyclerViewのスクロールが時々期待どおりに動作しないことです。ときには水平スワイプを認識せず、垂直スワイプだけを行うことがあります。水平スワイプを作成するには、実際に水平方向に直線を描く必要があります。数度オフにすると垂直スワイプとして認識されます。UXを改善するために、調整可能なパラメータはありますか?2つのネストされたRecyclerViewのスクロール動作
外レイアウト:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:gravity="center">
<ProgressBar
android:id="@+id/pb_new_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_modules"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:nestedScrollingEnabled="false"
android:paddingBottom="@dimen/newhome_recyclerview_paddingbottom" />
</RelativeLayout>
インナーレイアウト:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/NewHomeModuleContainer">
<TextView
android:id="@+id/tv_module_title"
style="@style/NewHomeModuleTitle" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_horizontal_recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/tv_show_more"
android:layout_below="@id/tv_module_title"
android:layout_marginBottom="-8dp"
android:clipToPadding="false"
android:paddingEnd="28dp"
android:paddingRight="28dp" />
</RelativeLayout>
の
onInterceptTouchEvent
インターセプトタッチイベントをオーバーライドする必要があります実際にはちょっと複雑ですが、私がそれを明確にすることができるかどうかは分かりません。しかし、基本的には外部モジュール用のDelegate as Adapterがあり、jsonタイプに応じて異なるモジュールをインスタンス化します。各垂直モジュールは、カスタムViewと別のRecyclerViewを持つ別のViewHolderを作成します – 4ndro1d