android ViewPager with Zoom ImageView



i编写pinch to Zoom ImageView的ViewPager,只需在缩放映像时就需要一种方法来禁用分页并在显示原始比例图像时启用它。false,然后ViewPager.setOnpageChangeListener不起作用如何修复它?以下是我的代码,谢谢

   public class CustomViewPager extends ViewPager {
    private boolean enabled;
    public CustomViewPager(Context context) {
        super(context);
        this.enabled = true;
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (this.enabled) {
            return super.onTouchEvent(event);
        }
        return false;
    }
    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        if (this.enabled) {
            return super.onInterceptTouchEvent(event);
        }
        return false;
    }
    public void setPagingEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    }

viewPager.setOnPageChangeListener(new OnPageChangeListener(){
        @Override
        public void onPageSelected(int position) {
        }
        @Override
        public void onPageScrollStateChanged(int state) {
            if(getScale() > 0.69){
                viewPager.setPagingEnabled(false);
            }else{
                viewPager.setPagingEnabled(true);
            }
        }
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }
    });

这可能会有所帮助。我没有测试过。因此,不能真正说出它是否有效。如果有效,请告诉我。

public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context) {
    super(context);
    this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return super.onTouchEvent(event);
    }
    return super.onTouchEvent(null);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return super.onInterceptTouchEvent(event);
    }
    return super.onInterceptTouchEvent(null);
}
public void setPagingEnabled(boolean enabled) {
    this.enabled = enabled;
}}

最新更新