【发布时间】:2016-10-16 15:39:42
【问题描述】:
我的情况是我只有 1 项活动。首先,它显示fragment1,在该片段内,我有一个recyclerView 来显示cardviews 列表,在每个CardView 内,都有一个图像。当用户点击每个 CardView 时,fragment1 将被 Fragment 2 替换。 Fragment2 包含一个 viewPager,viewpager 显示与 fragment1 中的 recyclerView 相同的数据,但更具体。我想在fragment1 中的image1 到fragment2 中的image2 之间制作一个shareElement 动画。 我所做的是: recyclerView的OnLickListener,我通过item的代码为image1设置了transitionName
image1.setTransitionName(item.getContentID().toString());
替换framgent和addShareElement:
fragmentTransaction
.replace(R.id.fragment, sharedElementFragment2, FragmentEnum.FEED.toString())
.addToBackStack(null)
.addSharedElement(image1,image1.getTransitionName())
.commit();
在 viewPager 的片段中,我用片段 1 发送的 transitionName 更新 image2
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.findViewById(R.id.image2).setTransitionName(feed.getContentID()+"");
}
但它不起作用。我试图将 image2 放在 viewpager 之外(直接在片段 2 下)并且它可以工作。 当 viewPager 中的目标元素时,shareElement 似乎不起作用。有什么解决办法吗?
【问题讨论】:
-
到目前为止你学习了哪些教程?
-
我跟着这个 tut:androidauthority.com/… 但在他们的例子中,目标片段不包含 viewpager
标签: android android-fragments shared-element-transition