Android 我不希望列表滑动太快怎么让触摸事件快速滑动变成慢速滑动
您可以使用Android的GestureDetector类来检测手势事件,包括快速滑动事件。在onFling方法中,您可以根据滑动速度来减慢列表的滑动速度。以下是一个示例代码片段:
public class MyTouchListener implements View.OnTouchListener {
private GestureDetector gestureDetector;
private RecyclerView recyclerView;
public MyTouchListener(RecyclerView recyclerView) {
this.recyclerView = recyclerView;
gestureDetector = new GestureDetector(recyclerView.getContext(), new MyGestureListener());
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (Math.abs(velocityY) > Math.abs(velocityX)) {
// 竖直方向滑动
recyclerView.smoothScrollBy(0, (int) (velocityY / 5));
return true;
} else {
return false;
}
}
}
}
在上面的代码中,我们创建了一个MyTouchListener类来处理触摸事件。在构造函数中,我们初始化了一个GestureDetector,并在onTouch方法中将触摸事件传递给它。在MyGestureListener中,我们重写了onFling方法来检测快速滑动事件,并根据滑动速度来减慢列表的滑动速度。您可以根据需要调整减速因子(我在这里使用了5)
原文地址: https://www.cveoy.top/t/topic/eEED 著作权归作者所有。请勿转载和采集!