0

カスタムアダプタを使用してカスタムギャラリーを実装しました。私の要件は、ユーザーがギャラリーでフリングを操作する速度が速くても遅くても、ギャラリー内で変更する必要があるのは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;
}

しかし、これは完全にフリング操作を無効にしました。

解決策は何でしょうか?

4

1 に答える 1

0

そのためには、 GalleryクラスのonFlingメソッドをオーバーライドする必要があります。これを試して、 Galleryの代わりにExtendedGalleryを使用してください。

于 2012-06-19T11:35:56.243 に答える