在我的应用中,我有一个ViewPager
。在其中一个页面中,我有另一个页面,ViewPager
其中通过自定义ViewPager
实现禁用了滑动手势:
public class NonSwipeableViewPager extends ViewPager { public NonSwipeableViewPager(Context context) { super(context); } public NonSwipeableViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { // Never allow swiping to switch between pages return false; } @Override public boolean onTouchEvent(MotionEvent event) { // Never allow swiping to switch between pages return false; } }
这很好用;子ViewPager中的滑动手势被禁用。但是,除非从屏幕的最右端开始滑动,否则无法滑动父ViewPager。如何使子级ViewPager忽略所有触摸事件/将其传递给父级视图?
答案很简单!
public class NonSwipeableViewPager extends ViewPager { public NonSwipeableViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean canScrollHorizontally(int direction) { return false; } }