如何禁用从边缘滑动ViewPager?

时间:2017-11-16 18:41:43

标签: android android-viewpager

我的活动包含Navigation DrawerAutoScrollViewPager。当我从手机屏幕的左边缘轻扫以打开Navigation Drawer时,AutoScrollViewPager的页面会更改而不是Navigation Drawer。如何禁用从边缘滑动AutoScrollViewPager

P.S。我尝试在AutoScrollViewPager中添加保证金,但它看起来很丑,如果保证金不够大,则不起作用。

2 个答案:

答案 0 :(得分:2)

使用Edge Flags

以下是Documentation

尝试使用以下代码:

Map

答案 1 :(得分:0)

尝试使用以下代码:

public class CustomViewPager extends ViewPager {

private boolean enabled;

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.enabled = true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return true;
    }

    return false;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (this.enabled) {
        if (event.getAction() == MotionEvent.ACTION_DOWN && event.getEdgeFlags() == MotionEvent.EDGE_LEFT) {
            return true;   //disable swipe
        }
    }

    return false;
}

public void setPagingEnabled(boolean enabled) {
    this.enabled = enabled;
} }