我想创建一个布局,其中包含多个滚动同步的recyclerview(已经可以工作),并且在包含这些recyclerview的整个LinearLayout的顶部,我想拥有另一个recyclerview(覆盖图),并且也可以与其他的recyclerview滚动同步(已经工作)。
现在我的问题是: 该覆盖图应忽略所有的触摸/点击事件,因为它不存在。 linearlayour内部的视图应对此做出反应(无需覆盖即可工作)。
我试图使其与onIntercerptTouchEvent一起使用,并将TouchEvents调度到其他视图,但是我不知道如何使其工作。
我的布局:
vertical_layout
包含多个Recyclerviews
如上所述
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="false">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false">
<LinearLayout
android:id="@+id/vertical_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/channels_layout">
</LinearLayout>
<CustomOverlayRecyclerView
android:id="@+id/overlay_recycler_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<LinearLayout
android:id="@+id/channels_layout"
android:layout_width="90dp"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent">
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
答案 0 :(得分:1)
向您的自定义 RecyclerView 添加以下替代:
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
return false;
}
这将防止自定义 RecyclerView 接收进一步的触摸事件并将其定向到基础视图。请参见Stack Overflow post,以获取有关其工作方式以及与其他资源的链接的说明。