“我的主要活动”由一个顶部具有3个标签的标签布局和一个viewpager组成。
在那个viewpager中,我有3个不同的片段。
在其中一个片段中,我有一个包含多个项目的回收视图。
当我单击来自recyclerview项目的图像时,我将打开一个包含更多详细信息的新片段。
问题是共享元素之间的过渡动画不起作用。细节片段只是弹出而没有动画。
这是来自recyclerview适配器onBindViewHolder中的onclicklistener的代码:
holder.ivPost.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
holder.ivPost.setTransitionName("transition" + position);
imageTransitionName = holder.ivPost.getTransitionName();
bundle.putInt("postimage", modelFeed.getPostpic());
bundle.putString("transitionName", imageTransitionName);
Transition changeTransform = TransitionInflater.from(context).
inflateTransition(R.transition.change_image_transform);
Transition noTransition = TransitionInflater.from(context).
inflateTransition(android.R.transition.no_transition);
Fragment fragment1 = Activity_Feed.newInstance();
fragment1.setSharedElementReturnTransition(changeTransform);
fragment1.setExitTransition(noTransition);
FragmentManager manager = ((AppCompatActivity)context).getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
Fragment fragment2 = Post.newInstance();
fragment2.setSharedElementEnterTransition(changeTransform);
fragment2.setEnterTransition(noTransition);
fragment2.setArguments(bundle);
transaction.addToBackStack(null).addSharedElement(holder.ivPost,imageTransitionName).replace(R.id.fram1, fragment2).commit();
}
});
R.id.fram1是第一个片段的框架布局ID。
在第二个片段中,我得到这样的参数:
Bundle bundle = getArguments();
String transitionName = bundle.getString("transitionName");
int postimage = bundle.getInt("postimage");
ImageView ivPost = v.findViewById(R.id.postimg);
ivPost.setTransitionName(transitionName);
ivPost.setImageResource(postimage);
谢谢您的帮助!