在我的应用程序中,我有一个 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 忽略所有触摸事件/将它们传递给父 View ?
最佳答案
答案原来很简单!
public class NonSwipeableViewPager extends ViewPager {
public NonSwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean canScrollHorizontally(int direction) {
return false;
}
}
关于Android 嵌套 ViewPager 禁用触摸事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34034866/