您的位置:首页 > 其它

PhotoView的异常问题

2015-08-24 21:34 148 查看






java.lang.IllegalStateException: ImageView no longer exists. You should not use this PhotoViewAttacher any more.

出现这个问题 很头疼 参考

https://github.com/chrisbanes/PhotoView/issues/50

然后 改版了PhotoViewAttacher 之后 就发现没有了

在PhotoViewAttacher 文件中 更改cleanup方法

发现可行

[java] view
plaincopy

/*

* @SuppressWarnings("deprecation")

* public final void cleanup() {

* if (null!= mImageView) {

* mImageView.get().getViewTreeObserver().removeGlobalOnLayoutListener(this);

* }

* mViewTreeObserver = null;

*

* // Clear

* listeners too mMatrixChangeListener = null;

* mPhotoTapListener = null;

* mViewTapListener = null;

*

* // Finally, clear ImageView

* mImageView = null; }

*/

@SuppressWarnings("deprecation")

public final void cleanup() {

if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {

if (null != mImageView) {

mImageView.get().getViewTreeObserver()

.removeOnGlobalLayoutListener(this);

}

if (null != mViewTreeObserver && mViewTreeObserver.isAlive()) {

mViewTreeObserver.removeOnGlobalLayoutListener(this);

mViewTreeObserver = null;

// Clear listeners too

mMatrixChangeListener = null;

mPhotoTapListener = null;

mViewTapListener = null;

// Finally, clear ImageView

mImageView = null;

}

} else {

if (null != mImageView) {

mImageView.get().getViewTreeObserver()

.removeGlobalOnLayoutListener(this);

}

if (null != mViewTreeObserver && mViewTreeObserver.isAlive()) {

mViewTreeObserver.removeGlobalOnLayoutListener(this);

mViewTreeObserver = null;

// Clear listeners too

mMatrixChangeListener = null;

mPhotoTapListener = null;

mViewTapListener = null;

// Finally, clear ImageView

mImageView = null;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: