运行一个简单的向左滑动动画,用于进入和退出片段,会产生进入片段与退出片段略微重叠的效果。这让我想到两个转换不是同时执行的。有没有任何线索或确认这种行为?
期望的效果是同时将片段向左滑动,而不重叠。
代码:
Fragment current = ...;
Fragment fragment = ...;
Transition slideIn = TransitionInflater.from(this)
.inflateTransition(R.transition.fragment_indicator_enter)
.setDuration(300)
.setInterpolator(new LinearInterpolator());
fragment.setEnterTransition(slideIn);
currentFragment.setExitTransition(TransitionInflater.from(this)
.inflateTransition(R.transition.fragment_indicator_exit)
.setDuration(300)
.setInterpolator(new LinearInterpolator()));
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, fragment)
.addToBackStack(null)
.commit();
到目前为止,唯一的解决方法是为进入转换添加setStartDelay(30)。但奇怪的是,我对不同片段有不同的转换,而startDelay必须不同才能产生两个片段同时向左滑动的效果。