gpt4 book ai didi

android - 从 fragment 切换到 Activity 并返回时没有动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:15:31 24 4
gpt4 key购买 nike

我的主要 Activity 以 fragment 形式显示内容。如果我按下一个按钮,另一个 Activity 就会从这行代码开始:

Intent intent = new Intent(context, FragmentActivity.class);
Bundle bundle = ActivityOptions.makeCustomAnimation(context, R.anim.slide_in_left, R.anim.slide_out_left).toBundle();
context.startActivity(intent, bundle);

所以新的 Activity 应该滑入,当前的 Activity 应该滑出。问题是新 Activity 的动画正确。当前 fragment 没有动画。

更新

这解决了问题,但我不想完成我的 Activity 。

finish();
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);

更新结束


如果我在 FragmentActivity 中按下后退按钮,我会得到另一个动画:

@Override
protected void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
}

再次强调,只有 FragmentActivity 的动画有效(R.anim.slide_out_right)。应该为 Main 设置动画的动画 (R.anim.slide_in_right) 不工作。

这就是我要创建的:YouTube

最佳答案

我认为这不是最漂亮的方法,但这是我为解决它所做的:

fragment :

Intent intent = new Intent(activity, FragmentActivity.class);
Bundle bundle = ActivityOptions.makeCustomAnimation(activity, R.anim.slide_in_left, R.anim.slide_out_left).toBundle();
activity.startActivity(intent, bundle);
activity.finish();

fragment Activity :

Intent intent = new Intent(this, Activity.class); // the activity that holds the fragment
Bundle bundle = ActivityOptions.makeCustomAnimation(this, R.anim.slide_in_right, R.anim.slide_out_right).toBundle();
startActivity(intent, bundle);

缺点可能是保存保存 fragment 的 Activity 中的所有内容。

关于android - 从 fragment 切换到 Activity 并返回时没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18810994/

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