要实现 RecyclerView 不消费点击事件,由外层 LinearLayout 消费,可以通过设置 RecyclerView 的点击事件监听器来实现。

首先,在布局文件中,将 RecyclerView 嵌套在一个 LinearLayout 中,设置 LinearLayout 的点击事件监听器。

<LinearLayout
    android:id='@+id/outerLinearLayout'
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:onClick="onOuterLinearLayoutClick">

    <androidx.recyclerview.widget.RecyclerView
        android:id='@+id/recyclerView'
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

然后,在代码中,找到 LinearLayout 和 RecyclerView 的引用,并设置点击事件监听器。

LinearLayout outerLinearLayout = findViewById(R.id.outerLinearLayout);
RecyclerView recyclerView = findViewById(R.id.recyclerView);

outerLinearLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在这里处理 LinearLayout 的点击事件
        // ...
    }
});

recyclerView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 不进行任何处理,让点击事件不被消费
    }
});

这样,当点击 RecyclerView 时,点击事件会被外层 LinearLayout 消费,而不会被 RecyclerView 消费。

Android RecyclerView 点击事件穿透 - 外层 LinearLayout 消费点击

原文地址: https://www.cveoy.top/t/topic/ql8k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录