Вот грязный способ решения этой проблемы
tl = (TableLayout) findViewById(R.id.main);
tl.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int y = v.getHeight();
int y1 = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
if (y1 + 50 >= y & more) {
//System.out.println("ACTION_DOWN " + bpg);
more();
}
break;
}
case MotionEvent.ACTION_UP: {
if (y1 - 50 <= 100 & bpg > 1) {
//System.out.println("ACTION_UP");
less();
}
break;
}
case MotionEvent.ACTION_MOVE: {
//System.out.println("ACTION_MOVE " + bpg);
if (y1 - 50 <= 100 & bpg > 1) {
//System.out.println("ACTION_UP");
less();
}
break;
}
}
//System.out.println("Test " + y + " " + y1);
return true;
}
});
Событие ACTION_DOWN обрабатывает следующую страницу, а событие ACTION_MOVE обрабатывает предыдущую страницу.Я проверяю, находится ли текущий Y почти в конце или в начале, тогда только действую.Это не чисто, но один из способов заставить его работать.