gpt4 book ai didi

android - fragment 进入和退出转换不会同时执行

转载 作者:搜寻专家 更新时间:2023-11-01 09:47:45 26 4
gpt4 key购买 nike

为进入 fragment 和现有 fragment 运行一个简单的向左滑动动画会产生进入 fragment 与退出 fragment 略微重叠的效果。这让我认为这两个转换不是同时执行的。此行为有任何线索或确认吗?

想要的效果是同时向左滑动 fragment ,不重叠。

代码:

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)。但奇怪的是,我对不同的 fragment 有不同的过渡,并且 startDelay 必须不同才能产生两个 fragment 同时向左滑动的效果。

最佳答案

效果是过渡的预期行为,因为布局中的所有 View 都在不同的时间移动,以避免将所有内容作为一个 block 移动,从而创建一些自然的运动感。我有意想要这种 block 效果,所以它通过添加一个过渡目标来解决,这个目标是包含 fragment View 的 FrameLayout。

fragment.setEnterTransition(new Slide(Gravity.RIGHT)
.addTarget(R.id.whole_content));

关于android - fragment 进入和退出转换不会同时执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37112949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com