Android - RecyclerView - 如何暂时阻止滚动?
Android - RecyclerView - How do I temporarily prevent scrolling?
我有一个要冻结的 RecyclerView(即,不允许用户滚动,但仍然能够点击任何当前可见的视图)直到满足特定条件。我该如何实现?
我试过设置 OnScrollListener
如下:
@Override
public void onScrolled(final RecyclerView recyclerView, final int dx, final int dy) {
super.onScrolled(recyclerView, dx, dy);
if(myCondition){
recyclerView.stopScroll();
}
});
没有成功。
我已经弄明白了。 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);
如果有人找到更简单的方法,请告诉我!
我有一个要冻结的 RecyclerView(即,不允许用户滚动,但仍然能够点击任何当前可见的视图)直到满足特定条件。我该如何实现?
我试过设置 OnScrollListener
如下:
@Override
public void onScrolled(final RecyclerView recyclerView, final int dx, final int dy) {
super.onScrolled(recyclerView, dx, dy);
if(myCondition){
recyclerView.stopScroll();
}
});
没有成功。
我已经弄明白了。 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);
如果有人找到更简单的方法,请告诉我!