本文介绍了RecyclerView中的共享元素转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在RecyclerView上使用共享元素转换,但似乎不起作用.
I am trying to use shared element transition on RecyclerView but it doesn't seem to work.
这是我在其中使用makeSceneTransitionAnimation()
的适配器的一部分:
This is a part of my adapter in which I use makeSceneTransitionAnimation()
:
public void onBindViewHolder(final BookViewHolder holder, final int position) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, DetailsActivity.class);
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)context , holder.smallThumbnail, "thumbnailTransition");
context.startActivity(intent, optionsCompat.toBundle());
}
}
}
推荐答案
在适配器中
holder.smallThumbnail.setTransitionName("thumbnailTransition");
Pair<View, String> pair1 = Pair.create((View) holder.smallThumbnail, holder.smallThumbnail.getTransitionName());
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) mContext, pair1, pair2);
mContext.startActivity(intent, optionsCompat.toBundle());
getWindow().setSharedElementEnterTransition(TransitionInflater.from(this).inflateTransition(R.transition.shared_element_transation));
mainImage.setTransitionName("thumbnailTransition");
这里的主图像是imageview,您要在其中变换以前的活动缩略图
Here this mainimage is imageview where you want to transform your previous activity thumbnail
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500">
<changeBounds />
<fade />
</transitionSet>
这篇关于RecyclerView中的共享元素转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!