私はViewFlipperを持っていて、その中にレイアウトのある4つのスクロールビューがあります。
次のコード(スクロールビューごと)を使用してスワイプします。
ScrollView View1 = (ScrollView) findViewById(R.id.View1);
View1.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN) {
FirstX = (int) event.getX();
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
int LastX = (int) event.getX();
if (FirstX - LastX > SWIPE_MIN_DISTANCE) {
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setOutAnimation(slideLeftOut);
viewFlipper.showNext();
} else if (LastX - FirstX > SWIPE_MIN_DISTANCE) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
viewFlipper.showPrevious();
}
}
return true;
}
});
動作しますが、ビュー1からビュー2にスワイプすると、ビュー2とビュー3が混在して表示され、最終的にビュー4が表示されます。
したがって、各ビューのOnTouchListenersは相互に呼び出されているようです。どうすればこれを防ぐことができますか?
短くて速いスワイプは、本来の機能を果たします。
rg、エリック