Sto tentando di impedire a ViewPager di scorrere tra le schede. Ho la seguente situazione:Come intercettare gli eventi di tocco da 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;
}
}
Ho i log da onPageScrolled e onPageScrollStateChanged normalmente, ma non ho i log da onInterceptTouchEvent e onTouch. Che cosa sto facendo di sbagliato?
Sì, questo potrebbe funzionare .. ma la differenza è che la mia classe implementa ViewPager.OnPageChangeListener. Penso che questo sia il problema perché onPageScrollStateChanged, onPageScrolled e onPageSelected potrebbero usare touchEvent, quindi tutti i touchEvent catturati dalla mia applicazione vanno a questi metodi. Qual è la tua opinione al riguardo? –
questa è una soluzione semplice ma funzionante, grazie. – SalutonMondo