java.lang.IllegalStateException: ImageView no longer exists. You should not use this PhotoViewAttacher any more.
出现这个问题 很头疼 参考
然后 改版了PhotoViewAttacher 之后 就发现没有了
在
PhotoViewAttacher
文件中 更改cleanup方法
发现可行
- /*
- * @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;
- }
- }
- }