为了账号安全,请及时绑定邮箱和手机立即绑定

RecyclerView 在其他视图之上没有触摸事件(覆盖)

RecyclerView 在其他视图之上没有触摸事件(覆盖)

四季花海 2022-10-07 16:41:57
我想创建一个布局,其中包含多个滚动同步的回收器视图(已经工作),并且在包含这些回收器视图的整个 LinearLayout 之上,我希望另一个回收器视图(覆盖)也与其他回收器视图滚动同步(已经工作)。现在我的问题: 覆盖应该忽略所有触摸/点击事件,就像它不存在一样。线性布局内的视图应该对它们做出反应(没有覆盖的工作)。我试图让它与 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>
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

在您的自定义RecyclerView中添加以下覆盖:


@Override

public boolean dispatchTouchEvent(MotionEvent event) {

    return false;

}

这将阻止自定义RecyclerView接收进一步的触摸事件并将它们定向到底层视图。请参阅此Stack Overflow 帖子,了解有关其工作原理和其他资源链接的说明。


查看完整回答
反对 回复 2022-10-07
  • 1 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信