問題描述:
有時候,我們不需要Gallery的慣性,如何去掉Gallery的慣性?
解決方法:
通過繼承Gallery,並重寫一些方法,自定義Gallery特性。
import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.widget.Gallery;
public class DetailGallery extends Gallery {
public DetailGallery(Context context, AttributeSet attrSet) {
super(context, attrSet);
}
private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) {
return e2.getX() > e1.getX();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int kEvent;
if (isScrollingLeft(e1, e2)) {
// Check if scrolling left
kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
} else {
// Otherwise scrolling right
kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
}
onKeyDown(kEvent, null);
return true;
}
}
注意,在xml文件中,使用自定義的DetailGallery代替默認的Gallery。