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

我想创建一个布局,其中包含多个滚动同步的回收器视图(已经工作),并且在包含这些回收器视图的整个 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>


四季花海
浏览 120回答 1
1回答

GCT1015

在您的自定义RecyclerView中添加以下覆盖:@Overridepublic boolean dispatchTouchEvent(MotionEvent event) {&nbsp; &nbsp; return false;}这将阻止自定义RecyclerView接收进一步的触摸事件并将它们定向到底层视图。请参阅此Stack Overflow 帖子,了解有关其工作原理和其他资源链接的说明。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java