从片段切换到活动并返回时没有动画

Exa*_*aqt 5 android android-animation android-fragments android-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);
Run Code Online (Sandbox Code Playgroud)

因此,新活动应该滑入,当前活动应该滑出.问题是新活动是否正确动画.当前片段没有动画.

更新

这解决了问题,但我不想完成我的活动.

finish();
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
Run Code Online (Sandbox Code Playgroud)

更新结束


如果我按下FragmentActivity中的后退按钮,我还有另一个动画:

@Override
protected void onBackPressed() {
    super.onBackPressed();
    overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
}
Run Code Online (Sandbox Code Playgroud)

同样,只有FragmentActivity的动画正在工作(R.anim.slide_out_right).应该为Main设置动画的动画(R.anim.slide_in_right)不起作用.

这就是我想要创造的:YouTube

Exa*_*aqt 9

我认为这不是最美妙的方式,但这就是我解决它的方法:

分段:

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();
Run Code Online (Sandbox Code Playgroud)

FragmentActivity:

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);
Run Code Online (Sandbox Code Playgroud)

缺点可能是将所有内容保存在保存片段的活动中.