当android support v4包和v7包版本不一样时,v4包中的SwipeRefreshLayout和v7包中的RecyclerView不能很好地一起工作,会导致SwipeRefreshLayout下拉刷新时动画卡住的情况,类似下面的情况:
sample
详情请参考:
http://stackoverflow.com/questions/33032036/swiperefreshlayout-freezes-on-api-4-2-2。
如果你的项目中用到了photoview,并且targetSdk还是22的话,请不要使用默认的Gradle引用:
compile 'com.commit451:PhotoView:1.2.4'
因为这个版本的photoview默认依赖了support v4 23.0.1版本,使得23.0.1版本中的SwipeRefreshLayout和22版本中的RecyclerView不能很好地协调工作。
可以使用下面的引用来引入photoview:
compile 'com.github.chrisbanes.photoview:library:1.2.4'
如果不是特意去查看,你还很难发现这个细节,因为targetSdk为22的情况下是不会引用23.0.1版本的v4包的,除非你项目中有其他的library引用了。
小结
在引入官方support库时,务必保证版本一致;在引入第三方库时,务必查看第三方库的依赖库,免坑。
网友评论