У меня есть RecyclerView внутри MaterialCardView, и у этой карты есть куча других представлений.
Элементы RecyclerView не активируются, единственная цель - показать некоторые данные из списка.Когда я нажимаю MaterialCardView, я должен перейти к другому экрану.Если я касаюсь где-либо за пределами области RecyclerView, возникает эффект Ripple, и я перехожу на другой экран. Однако, если я нажимаю на 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) {
}
});
Если явызов 'card.callOnClick ()' или 'card.performClick ()' внутри 'onItemTouchListener' с ним работает, но эффект Ripple не происходит, он не выглядит как естественный щелчок.
Я хочуRecyclerView, чтобы не перехватывать нажатие / касание и позволить родительской карте обрабатывать эти события.