即使滚动RecyclerView,也可以启用单击项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即使滚动RecyclerView,也可以启用单击项目相关的知识,希望对你有一定的参考价值。
正常行为:当我们滚动回收器视图时,项目将滚动,然后点击,RV将停止滚动,而不是执行项目单击。
我需要的:停止滚动+执行项目点击!
任何hacky方式?
答案
我从这个link得到了答案
我想添加更多代码......
public class MyRecyclerView extends RecyclerView {
public MyRecyclerView(Context context) {
super(context);
}
public MyRecyclerView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MyRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
//https://stackoverflow.com/a/46569656/8863321
boolean requestCancelDisallowInterceptTouchEvent = getScrollState() == SCROLL_STATE_SETTLING;
boolean consumed = super.onInterceptTouchEvent(e);
final int action = e.getActionMasked();
switch (action) {
case MotionEvent.ACTION_DOWN:
if( requestCancelDisallowInterceptTouchEvent ){
getParent().requestDisallowInterceptTouchEvent(false);
// stop scroll to enable child view get the touch event
stopScroll();
// not consume the event
return false;
}
break;
}
return consumed;
} }
这是非常罕见的情况,但这个技巧可能在将来帮助某人!
以上是关于即使滚动RecyclerView,也可以启用单击项目的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在代码中为 RecyclerView 启用滚动条?
为啥即使在自定义 OnTouchListener 实现后 RecyclerView 仍然滚动?
当nestedscrollview 中的recyclerview 滚动时,对讲焦点转到工具栏项