RecyclerView dispatchTouchEvent 禁止滑动但是可以点击item 并且获取到点击item的数据
时间: 2024-03-16 16:44:24 浏览: 92
您可以在RecyclerView的onTouchEvent方法中进行拦截,如果您想禁止滑动,只需要返回true即可。如果您想获取到点击item的数据,可以通过RecyclerView的addOnItemTouchListener方法实现,代码示例如下:
```
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
return false;
}
@Override
public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
View childView = rv.findChildViewUnder(e.getX(), e.getY());
if (childView != null && e.getAction() == MotionEvent.ACTION_UP) {
// TODO: 处理点击事件,获取点击item的数据
}
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// 禁止RecyclerView滑动
return true;
}
});
```
在上述代码中,addOnItemTouchListener方法用于监听RecyclerView的item点击事件,onTouchEvent方法中处理点击事件并获取点击item的数据。setOnTouchListener方法用于禁止RecyclerView滑动。
阅读全文