Android RecyclerView 点击事件穿透 - 外层 LinearLayout 消费点击
要实现 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 消费。
原文地址: https://www.cveoy.top/t/topic/ql8k 著作权归作者所有。请勿转载和采集!