PhotoViewAttacher
的{{1}}阻止我的boolean onFling(MotionEvent, MotionEvent, float, float)
的{{1}}方法被调用,除非当前标度是最小。
我从OnSingleFlingListener
实现了onFling
。但是,由于OnSingleFlingListener
方法仅在包中可见,因此首先调用com.github.chrisbanes.photoview
的{{1}}方法。 onFling
防止在PhotoViewAttacher
时调用我的onFling
方法。除非PhotoViewAttacher.onFling
,否则我需要我的电话。 ({onFling
当我的图像的宽度与窗口的宽度匹配时。)如何解决这个问题?我需要自己制作整个scale > DEFAULT_MIN_SCALE
软件包的副本并修改scale > getMediumScale()
使其公开吗?
我的代码:
scale == getMediumScale()
OnSingleFlingListener:
PhotoView
PhotoViewAttacher:
OnSingleFlingListener.onFling
我希望在public class BasicViewActivity extends AppCompatActivity implements DownloadCallback, OnSingleFlingListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
. . .
return true;
}
时呼叫我的package com.github.chrisbanes.photoview;
public interface OnSingleFlingListener {
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY);
}
。相反,仅在@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (mSingleFlingListener != null) {
if (getScale() > DEFAULT_MIN_SCALE) {
return false;
}
. . .
return mSingleFlingListener.onFling(e1, e2, velocityX, velocityY);
}
return false;
}
时调用我的onFling
方法。
答案 0 :(得分:1)
我决定解决这个问题。
我更改了上述一行(并添加了一个分数以防止浮点错误):
if(getScale() > getMediumScale() + .01f) {
return false;
}