如何禁用RecyclerView清除但使滚动正常工作?

时间:2018-11-16 15:08:29

标签: android android-recyclerview fling

我有一个水平RecyclerView。我需要滚动它,但是要通过滑动手势来禁用甩动。

最初,所有工作都是通过onTouchEvent方法完成的,我不知道如何在不重写所有触摸处理的情况下将其禁用

1 个答案:

答案 0 :(得分:1)

您可以将GestureDetectorSimpleOnGestureListener一起使用以捕获逃逸事件并决定是否允许它们。

RecyclerView recycler = findViewById(R.id.recycler);
GestureDetector detector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        // return true if you want to stop the fling
        // return false if you want to allow the fling
        return true;
    }
});

recycler.setOnTouchListener((v, event) -> detector.onTouchEvent(event));

GestureDetector.OnGestureListener#onFling()