gpt4 book ai didi

android - 如何在屏幕旋转后禁用/避免 fragment 自定义动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:20 28 4
gpt4 key购买 nike

我刚刚发现,每次我在 Fragment 上设置 RetainInstance(true) 时,它都会按预期工作(保留 Fragment 数据),但这会导致 Fragment 的自定义动画在屏幕旋转后再次执行。

有没有办法在屏幕旋转时避免/禁用这些动画?

fragment 是使用以下动画创建的:

setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right);

所以,我不希望在屏幕旋转时再次执行那些“滑动动画”。

最佳答案

我是这样处理的

private boolean viewsHaveBeenDestroyed;

@Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
// This stops animation on rotation as we have a retained instance.
boolean shouldNotAnimate = enter && viewsHaveBeenDestroyed;
viewsHaveBeenDestroyed = false;
return shouldNotAnimate ? AnimationUtils.loadAnimation(getActivity(), R.anim.none)
: super.onCreateAnimation(transit, enter, nextAnim);
}

@Override
public void onDestroyView() {
super.onDestroyView();
viewsHaveBeenDestroyed = true;
}

R.anim.none 只是一个什么都不做的动画。祝你好运。

关于android - 如何在屏幕旋转后禁用/避免 fragment 自定义动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016517/

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