gpt4 book ai didi

android lollipop - fragment 的 setentertransition() 在退出时无法正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:00 25 4
gpt4 key购买 nike

在替换 fragment 时,我正在使用适用于 android lollipop 版本的幻灯片动画。对于这个特定的替换,它按预期工作,但在按下后退按钮时,它首先弹出当前 fragment ,然后执行输入动画的反向(滑出)。

private void replaceContentFrameByFragment(Fragment replaceBy, String replaceByFragmentTag) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Slide slide = new Slide(Gravity.BOTTOM);
slide.setDuration(1000);
replaceBy.setEnterTransition(slide);
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, replaceBy, replaceByFragmentTag);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commitAllowingStateLoss();
}

那么,如何强制fragment在slide的反向动画结束后才弹出呢?我注意到 Activity 提供了方法 finishAfterTransition()。 frgament 有类似的东西吗?

最佳答案

我有同样的问题,onReturn from Fragment B -> A,Fragment B 似乎在做一个额外的幻灯片过渡。为了解决这个问题,我为 setReturnTransition() 添加了一个比幻灯片更短的淡入淡出过渡,这看起来相当不错(因为它溶解到前一个 fragment 中)。代码是:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Slide slideRight = new Slide(Gravity.RIGHT);
slideRight.setDuration(200);
fragment.setEnterTransition(slideRight);
Fade fade = new Fade();
fade.setDuration(100);
fragment.setReturnTransition(fade);
}

关于android lollipop - fragment 的 setentertransition() 在退出时无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505403/

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