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

Eir*_*tou 5 android android-animation android-fragments

我有一个视图寻呼机,其中包含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();
Run Code Online (Sandbox Code Playgroud)

R.id.Container是FragmentA的父RelativeRayout(不是活动的)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>
Run Code Online (Sandbox Code Playgroud)

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

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

当凝视片段不属于Viewpager时,转换也会起作用.所以问题就出现了.你有什么想法吗?我也发现了这一点:片段共享元素转换不适用于ViewPager,我认为它我的相同,但该解决方案仅适用于Activity转换,因此它并没有真正帮助.