我有一個簡單的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}}); –