Ich versuche zu verhindern, dass mein ViewPager zwischen Registerkarten scrollt. Ich habe die folgende Situation:Wie Sie Berührungsereignisse von ViewPager.OnPageChangeListener abfangen können
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;
}
}
Ich habe die Protokolle von onPageScrolled und onPageScrollStateChanged normal, aber ich habe keine Protokolle von onInterceptTouchEvent und OnTouch. Was mache ich falsch?
Ja, das mag funktionieren .. aber der Unterschied ist, dass meine Klasse ViewPager.OnPageChangeListener implementiert. Ich denke, das ist das Problem, da onPageScrollStateChanged, onPageScrolled und onPageSelected möglicherweise touchEvent verwenden, so dass alle von meiner Anwendung erfassten touchEvent diese Methoden verwenden. Was denkst du darüber? –
das ist eine einfache, aber funktionierende Lösung, danke. – SalutonMondo