如何使 RecyclerView 不可点击,并将 onClick 事件传递给父视图?
2022-09-01 21:16:27
是否可以使一个不可点击?我想要这个,因为我只是在可点击的范围内显示一些小图标。因此,如果有人点击图标,它应该只需单击(并激活)父级。RecyclerView
RecyclerView
CardView
CardView
我尝试了以下方法:
recyclerView.setClickable(false);
recyclerView.setFocusable(false);
- 扩展并进行返回。
RecyclerView
onTouchEvent(MotionEvent)
false
- 使用上述方法 3 并在适配器中使用。这有效,点击被发送到父级。但是,现在不再可滚动。
itemView.setClickable(false);
RecyclerView
RecyclerView
- 在膨胀的列表项 XML 中设置 、 。(请参阅评论@Ibrahim
clickable="false"
focusable="false"
focusableInTouchMode="false"
) - 调用和 .这有效,但与#4具有相同的问题。
recyclerView#setLayoutFrozen(true)
itemView.setClickable(false);
任何想法如何禁用和传递到父视图的点击事件?请注意,仍需要可滚动(水平)。RecyclerView
RecyclerView
编辑:
用户@c.dunlap建议将OnClick侦听器设置为图标,只需将单击“重定向”到父级的单击操作即可。这可以正常工作,但父视图上不会有单击动画。如果有人在 itemView 外部单击 - 但仍然在项目内(例如 ItemDecoration 填充) - 则不会检测到单击。所以不幸的是,这不是一个解决方案。RecyclerView