Android退出转换excludeTarget在android.support.v4.widget.DrawerLayout中无法正常工作

Ren*_*ith 2 android android-animation material-design android-5.0-lollipop activity-transition

我有一个活动,其中包括一个包含3个片段的viewpager.从第一个选项卡,我调用另一个激活并尝试从退出过渡中排除工具栏和标签栏.

if (Build.VERSION.SDK_INT >= 21) {

                    getActivity().getWindow().setExitTransition(new Slide(Gravity.LEFT).excludeTarget(R.id.toolbar,true));

                    Pair<View, String> pair1 = Pair.create((View) matCvr, matCvr.getTransitionName());
                    Pair<View, String> pair2 = Pair.create((View)matTxt, matTxt.getTransitionName());

                    ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(),pair1,pair2);
                    ActivityCompat.startActivity(getActivity(), matIntent, options.toBundle());
                }
Run Code Online (Sandbox Code Playgroud)

问题是excludeTarget似乎不起作用,整个视图向左滑动.我已尝试像下面的addTarget单独包含viewpager.但在这种情况下,默认的Fade动画正在发生.

getActivity().getWindow().setExitTransition(new Slide(Gravity.LEFT).addTarget(R.id.viewPager));
Run Code Online (Sandbox Code Playgroud)

有人遇到过这个问题吗?任何帮助赞赏.

更新

当我在里面有意见时会出现问题

android.support.v4.widget.DrawerLayout / android.support.design.widget.AppBarLayout
Run Code Online (Sandbox Code Playgroud)

Ren*_*ith 11

我们需要为父视图明确地设置android:transitionGroup ="false".

如果ViewGroup在Activity转换期间应该一起执行,则为True.当存在非空背景或getTransitionName()不为null或者为BACKGROUNDOutlineProvider(ViewOutlineProvider)提供除BACKGROUND之外的非null ViewOutlineProvider时,默认值为true,否则为false.

  • 注意:您可以通过在API&gt; = 21上调用`ViewGroup.setTransitionGroup`或在所有API上通过`ViewGroupCompat.setTransitionGroup`在代码中执行此操作 (2认同)