Closed junchenChow closed 4 years ago
自己这边代码确定没问题,是不是绑定的imageview过去之后做什么事情了
找到问题了。。。在EmptyThumState这个类里 把传过来的imageview的Drawable拿来用了 然后导致一系列问题。。
目前不支持gif图片的查看,预计看下个版本会支持。
好吧~ 还发现个问题,场景是一个聊天页面,进入之后是个recycleview 自动滚动到底部, 然后这个时候刚好末尾的position是个图片,点击之后就崩溃了,如果不是边界的下标点击可以正常查看图片。用的bindRecyclerView()的方式去查看的,用单个imageview方式就没有这个问题
是使用最新的代码么?这个问题很早之前就修复了。最好能贴一下报错信息
使用的master分支的最新代码。
@Override
public TransferImage createTransferIn(final int position) {
List<ImageView> originImageList = transfer.getTransConfig().getOriginImageList();
ImageView originImage = originImageList.get(position > originImageList.size() - 1 ? originImageList.size() - 1 : position);
....
return transImage;
}
报的是空指针 originImage 拿出来的是个null ,我断点跟了一下,貌似在fillByRecyclerView()这个方法操作的。 createTransferIn(final int position)这一段代码我改了一点点加了个判断 原来的代码是直接用position去get 直接就下标越界崩了。。。难道是我使用有问题吗 我打断点看了我传来的数据 都正常的
你是不是那一组 RecyclerView 都在屏幕外不可见了,如果是这样的话,必须要重置transferee。因为这是屏幕外的,RecyclerView 的item都会被销毁掉,目标不都不存在了, transferee 拿什么去显示? 如果方便的话,你能贴个动图或者视频就好了,这样效率会高一点。
视频gif还是太慢了~ 就是点图里最底部的图片出的问题 我滑动到中间的话再去点 又没问题了
你说的没错,但是代码表现出来的情况感觉有点不一样
传进来的position = 14, originImageList经过fillByRecyclerView()一轮后size = 20,打断点看到这个originImageList里面只有下标19有值, 看起来没问题
看起来好像是我传入的初始position出了问题 T_T
哦,你这种情景类似qq相册功能,这种使用模式不要 bindRecyerView 你点那张图就bindImageView 直接绑定点的那张图。然后去设置setSourceImageList,这个集合包括现有的全部图片。如果下拉刷新,还要实时去setSourceImageList
如果你要 bindRecyerView ,你要自己去维护自己的的sourceImageList 和 position, 在点击图片的时候,实时更新,transferee 内部无法感知你图片数量的变化和 position 的变化,只能把你传进来的 sourceImageList 和 position作为依据。
嗯嗯 我是觉得绑定recycleview返回的时候可以对应位置 效果好看一点 感谢大神的回答 我现在用的bindImageView了 没啥问题了
gif 图片和长图,目前都完美支持了 @junchenChow
大概是哪几个类有修改呀 目前大佬你的代码我这边有在本地修改一部分源码去适配图片视频
这次改动的有点多,同时还修复了其他issues中提到的bug。 建议你直接全量替换。然后在这个基础上再添加你的修改
使用的是这种方式跳转查看大图,然后返回到原来的页面,之前点击的imageview问题就来了。 gif停止播放了 滑动的时候这个imageview的gif居然又动起来了 还偶尔会图片显示错乱。。。