一方面ViewPager只能刷卡

Jan*_*ler 4 android android-viewpager

我的应用程序中有一个ViewPager,我想在任何时候禁用/允许滑动到右侧.viewpager中的每个视图都包含ListView.我怎样才能做到这一点?我试图用这种方式做到这一点:

private int oldX;
private int deltaX = 0;

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    if (motionEvent.getAction() == MotionEvent.ACTION_MOVE || motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
        int newX = (int) motionEvent.getX();
        deltaX = oldX - newX;
        oldX = newX;
    }
    if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
        oldX = 0;
    }
    return deltaX < 0;        
}
Run Code Online (Sandbox Code Playgroud)

但观点仍然偏向右侧.有人在解决同样的问题吗?

san*_*tar 12

我可以通过将其代码应用到我的应用程序并添加以下内容来实现ViewPager中的单面滚动

private boolean performDrag(float x) {
    boolean needsInvalidate = false;

    final float deltaX = mLastMotionX - x;
    mLastMotionX = x;

    // MY CODE STARTS
    if (deltaX < 0) {
        return false;
    }
    // MY CODE ENDS

    float oldScrollX = getScrollX();
    ...
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常.您可能需要的唯一东西 - 获取适配器代码或提供您自己的适配器,因为ViewPager在其代码中使用的某些方法不公开PagerAdapter.