Android Material Fragment转换共享元素在viewpager中无法正常工作

时间:2016-01-12 17:21:05

标签: android android-fragments android-animation

我有一个视图寻呼机,其中包含4个完全不同的片段。

从该寻呼机的片段A我想创建一个像这样的新片段:

Transition changeTransform = TransitionInflater.from(getActivity()).inflateTransition(R.transition.change_image_transform);
                Transition explodeTransform = TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.explode);

                // Setup exit transition on first fragment
                setSharedElementReturnTransition(changeTransform);
                setExitTransition(explodeTransform);

                // Setup enter transition on second fragment
                PropertyFragment fragment = new PropertyFragment();
                fragment.setSharedElementEnterTransition(changeTransform);
                fragment.setEnterTransition(explodeTransform);


 FragmentTransaction ft = getChildFragmentManager().beginTransaction()
                        .replace(R.id.container, fragment)
                        .addToBackStack(fragment.getFragmentTag())
                        .addSharedElement(icon, icon.getTransitionName())
                        .addSharedElement(text, text.getTransitionName());
                        ft.commit();

R.id.Container是FragmentA的父RelativeLayout(不是活动的) R.transition.change_image_transform如下:

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <changeTransform />
    <changeBounds />
    <changeImageTransform/>
</transitionSet>

片段事务有效,并且发生了explodeTransform。但是共享元素转换不起作用。就像他们甚至不在那里一样。我已尝试以编程方式创建转换而不是XML以及这些的所有组合:,我可以。什么都行不通。转换名称在两端都是正确的100%。

我还尝试了事务的getChildFragmentManager(),getactivity()。getSupportFragmentManager(),但它也没有做任何改变。

当凝视片段不属于Viewpager时,转换也会起作用。所以问题就出现了。你有什么想法吗?我也发现了这个:Fragment shared element transitions don't work with ViewPager我认为它与我的相同,但解决方案仅适用于Activity转换,所以它并没有真正帮助。

0 个答案:

没有答案