我有一个简单的recyclerview与字符串显示数字列表的适配器,我想避免recyclerview停止滚动时,它是由用户触摸。 我已经取消手动滚动recyclerview拖动由用户,但我需要通过编程方式管理滚动(开始和停止滚动)防止回收站停止滚动触摸事件
我不想让用户与recyclerview交互。 下面是一个小的video,显示当用户在滚动(停止)时触摸回收站视图时发生的情况。我想取消那个行为。
这是我如何取消滚动上通过添加这些行的代码由用户
recyclerViewSlot.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
// set return "true" = disables scrolling behaviour on dragging
return true;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
拖动,没有对行为没有变化。
recyclerViewSlot.setEnabled(false);
recyclerViewSlot.setClickable(false);
感谢Niza酒店!iv'e测试它,我得到了相同的结果,返回true或false犯规做出的行为的任何变化。你有没有测试过这个? – gustav12
您可以使用该代码来防止用户滚动RecyclerView。如果你希望用户不停止RecyclerView当流苏,那么你有当recyclerView已经flinged检测,然后将其锁定 –
这样\t \t list.addOnScrollListener(新OnScrollListener(){ \t \t \t @覆盖 \t \t \t公共无效onScrollStateChanged(RecyclerView recyclerView, \t \t \t \t \t INT newState){ \t \t \t \t // TODO自动生成方法存根 \t \t \t \t如果(newState == AbsListView.OnScrollListener.SCROLL_STATE_FLING){ \t \t \t \t \t list.setLock(真); \t \t \t \t} \t \t \t \t否则{ \t \t \t \t \t list.setLock(假); \t \t \t \t} \t \t \t}}); –