完成活动而不启动新活动时,setExitTransition不起作用

时间:2017-01-24 07:02:11

标签: android android-transitions

我有一个Activity将退出转换设置为Explode,如下所示:(API> = 21)

...
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        getWindow().setExitTransition(new Explode());
    }
    setContentView(R.layout.activity_test);
    ...
}
...

当我开始这样的另一个活动时:

startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

出现爆炸转换。但是,当我按下后退按钮(完成活动)时,我想播放爆炸过渡,但它并没有像我预期的那样工作。

退出过渡只是为了进入下一个活动还是什么?如果Activity是我的应用程序中的活动(不启动其他活动),该怎么办?

  1. 当活动完成后,我该怎么做才能玩爆炸过渡?
  2. 如果我想将共享元素转换为其父Activity,但是不是反过来的方式,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我认为这有助于您使用Activity

完成ExitTransition
 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onBackPressed() {
        super.onBackPressed();
        Intent homeIntent = new Intent(Intent.ACTION_MAIN);
        homeIntent.addCategory(Intent.CATEGORY_HOME);
        homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        startActivity(homeIntent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());

    }