我怎样才能只扔到下一张或上一张卡片?

How can I fling to next or previous card only?

我正在开发一个非常基本的应用程序,显示一些带有图像和文本的卡片。它的工作非常完美,因为它可以很好地居中并且可以很好地捕捉。但是当我scroll/fling快的时候,落地的牌可以是当前牌的第三张甚至第四张。

我想对其进行限制,以便当用户向右滑动(无论多快)时,它应该只落在前一张卡片上,如果 he/she 向左滑动,它应该转到下一张即时卡片.可以这样做吗?

你的情况,我觉得你应该通过改变fling的速度来解决, RecyclerView 有 fling 方法,你直接重写即可。

float FLING_SPEED = 0.5f;

@Override
public boolean fling(int velocityX, int velocityY)
{
    // FLING_SPEED between (0, 1) => slow down, greater 1 => speed up
    // velocityY for vertical, velocityX for horizontal
    velocityY *= FLING_SPEED; 
    return super.fling(velocityX, velocityY);
}