我在 MaterialCardView 中有一个 RecyclerView,这张卡有很多其他的视图。
RecyclerView 项目不可点击,唯一的目的是显示列表中的一些数据。当我单击 MaterialCardView 时,我必须导航到另一个屏幕。如果我触摸 RecyclerView 区域以外的任何地方,就会出现涟漪效应并导航到另一个屏幕。但是,如果我单击 RecyclerView,则什么也不会发生。
我怀疑视图正在拦截触摸事件,阻止卡片消耗点击,但找不到让它工作的方法。
相对于我尝试过的 RecyclerView:
recyclerView.setOnCLickListener(v -> card.callOnClick())
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_DOWN) {
card.callOnClick();
}
return false;
}
@Override
public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
如果我在“onItemTouchListener”中调用“card.callOnClick()”或“card.performClick()”,它可以工作,但不会发生波纹效应,它看起来不像是自然的点击。
我希望 RecyclerView 不拦截点击/触摸并让父卡处理这些事件。