我有一个我希望冻结的RecyclerView(即,不允许用户滚动,但仍然能够点击任何当前可见的视图),直到满足某个条件。我如何实现这一目标?
我尝试设置OnScrollListener
如下:
@Override
public void onScrolled(final RecyclerView recyclerView, final int dx, final int dy) {
super.onScrolled(recyclerView, dx, dy);
if(myCondition){
recyclerView.stopScroll();
}
});
没有成功。
答案 0 :(得分:1)
我已经弄明白了。应该使用OnItemTouchListener
代替:
onItemTouchListener = new OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(final RecyclerView recyclerView, final MotionEvent e) {
if(myCondition){
switch(e.getAction()){
case MotionEvent.ACTION_MOVE: return true;
}
}
return false;
}
@Override
public void onTouchEvent(final RecyclerView recyclerView, final MotionEvent e) {
}
};
现在将其添加到RecyclerView:
yourRecyclerView.addOnItemTouchListener(onItemTouchListener);
如果有人找到更简单的方法,请告诉我!