我試圖禁止我的ViewPager滾動選項卡之間。我有以下情況:如何攔截從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;
}
}
我從onPageScrolled日誌和正常onPageScrollStateChanged,但我沒有從onInterceptTouchEvent和onTouch日誌。我究竟做錯了什麼?
是的,這可能工作..但不同的是,我的類實現ViewPager.OnPageChangeListener。我認爲這是問題,因爲onPageScrollStateChanged,onPageScrolled和onPageSelected可能會使用touchEvent,所以我的應用程序捕獲的所有touchEvent都會轉到這些方法。你對此有何看法? –
這是一個簡單但有效的解決方案,謝謝。 – SalutonMondo