我有一个带有recyclerview的片段,它有一个ImageView,用Picasso加载它的照片。单击recyclelerview项时,它将使用具有较大ImageView的新片段替换当前片段,并使用Picasso加载相同的图像。我想在这两个片段之间实现共享元素转换,而我似乎无法通过谷歌搜索找到。非常感谢任何帮助。
答案 0 :(得分:0)
过去几天我一直在努力解决同样的问题,最后得到了它,除了我使用Glide,请查看我的question。我在那里分享了一些代码,但对于毕加索来说,它会是类似的。基本上,你可以通过推迟共享元素转换,直到你确定图像被加载为止,你使用Picasso Callback,一旦图像加载完成就会触发,你开始推迟转换,类似于那个:
Picasso.with(mContext).load(image).resize(width,height)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
startPostponedEnterTransition();
}
@Override
public void onError() {
startPostponedEnterTransition();
}
});
您可以在this文章中了解有关推迟过渡的更多信息。
当然,实施共享元素转换涉及其他步骤,其中一部分可以在我的问题中找到,另一部分在this文章(最近的)和this一部分(它有4个部分) 只是为了确保,你的碎片不是嵌套的?
如果您在阅读这些文章后遇到一些问题,我可以分享一些代码或尽可能多地解释。