RecyclerView拖放 - 使用ItemTouchHelper - 如何在拖动时更快地设置滚动速度?

时间:2016-07-29 15:41:48

标签: android scroll drag-and-drop android-recyclerview itemtouchhelper

我尝试使用此代码进行拖放:https://github.com/iPaulPro/Android-ItemTouchHelper-Demo

以下是视频:https://youtu.be/lMsv2jYpbi4

有没有办法在拖放过程中加快滚动?

1 个答案:

答案 0 :(得分:11)

在扩展ItemTouchHelper.Callback的类中,覆盖方法:

@Override
public int interpolateOutOfBoundsScroll(RecyclerView recyclerView, int viewSize, int viewSizeOutOfBounds, int totalSize, long msSinceStartScroll) {
    final int direction = (int) Math.signum(viewSizeOutOfBounds);
    return 10 * direction;
}

这是一个使用固定滚动速度的简单示例,但是如果你想要一些开始变慢并加速的东西(如super.interpolateOutOfBoundsScroll那样)你可以根据滚动后的时间做一些数学运算({{ 1}})以及整个滚动中的位置(示例在滚动条中间滚动得更快,而当你接近开始/结束时滚动速度更慢)。