Próbuję zabronić moim ViewPager przewijania między kartami. Mam następującą sytuację:Jak przechwytywać zdarzenia dotykowe z ViewPager.OnPageChangeListener
public class MyClass extends ViewPager implements ViewPager.OnPageChangeListener, OnTouchListener {
public MyClass() {
setOnTouchListener(this);
}
@Override
public void onPageScrollStateChanged(int state) {
Log.d("Testing", TAG + " onPageScrollStateChanged");
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.d("Testing", TAG + " onPageScrolled");
}
@Override
public void onPageSelected(int position) {
Log.d("Testing", TAG + " onPageSelected");
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
Log.d("Testing", "intercept");
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("Testing", "touch2");
return false;
}
}
mam logi z onPageScrolled i onPageScrollStateChanged normalnie, ale nie mam logów z onInterceptTouchEvent i onTouch. Co ja robię źle?
Tak, to może działać .. ale różnica polega na tym, że moja klasa implementuje ViewPager.OnPageChangeListener. Myślę, że to jest problem, ponieważ onPageScrollStateChanged, onPageScrolled i onPageSelected mogą używać touchEvent, więc wszystkie touchEvent przechwycone przez moją aplikację przechodzą na te metody. Jakie jest twoje zdanie na ten temat? –
to proste, ale działające rozwiązanie, dzięki. – SalutonMondo