У меня есть 3x3 TableLayout, с кнопкой в каждой ячейке. TableLayout находится на ViewFlipper, поэтому, когда в ViewFlipper обнаружен жест смахивания, пользователю предоставляется другое представление (все добавляется программно, кроме ViewFlipper).
Проблема заключается в том, что, если провести пальцем по кнопке, происходит событие onClick, и в ViewFlipper не выполняется никакого пролистывания. Я хочу передать событие салфетки в ViewFlipper, если это салфетка, и поддерживать событие onClick на кнопке, если это щелчок. И, если это событие смахивания, не нажимайте кнопку.
Попробовал это:
btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_MOVE){
vFlipper.onTouchEvent(event);
return false;
}
return false;
}
});
Но OnTouch не запускается в ViewFlipper. Это OnTouchListener на ViewFlipper:
vFlipper.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("TAG", "Intercepted");
int action = event.getActionMasked();
switch (action){
case MotionEvent.ACTION_DOWN:
startX = event.getX();
break;
case MotionEvent.ACTION_UP:
float endX = event.getX();
float endY = event.getY();
//swipe right
if (startX < endX) {
vFlipper.showNext();
}
//swipe left
if (startX > endX) {
vFlipper.showPrevious();
}
break;
}
return true;
}
});
Спасибо.