カスタムアダプタを使用してカスタムギャラリーを実装しました。私の要件は、ユーザーがギャラリーでフリングを操作する速度が速くても遅くても、ギャラリー内で変更する必要があるのは1つのアイテムだけであるということです。ギャラリーのonFling
メソッドをオーバーライドしようとしました
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
//Log.e("VELOCITY ORIGINAL", ""+velocityX);
if (velocityX > 500) {//moving left
velocityX = 500.0f;
}else if(velocityX < -500){//moving right
velocityX = -500.0f;
}
//Log.e("VELOCITY MODIFIED", ""+velocityX);
return super.onFling(e1, e2, velocityX, velocityY);
}
しかし、1つのアイテムをフリックすることもあれば、フリックしないこともあるため、これでは望ましい結果が得られませんでした。
それから私は試しました
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
しかし、これは完全にフリング操作を無効にしました。
解決策は何でしょうか?