setExitTransition 在完成 Activity 而不开始新的时不起作用
setExitTransition not work when finishing an Activity without starting a new one
我有一个 Activity 将退出转换设置为爆炸,如下所示:(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);
...
}
...
当我像这样开始另一个 Activity 时:
startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
爆炸过渡出现。然而,我想在按下后退按钮(完成 activity)时播放爆炸过渡,但它并没有像我预期的那样工作。
所以退出过渡只是为了进入下一个Activity还是什么?如果 Activity 是我的应用程序中的叶子 Activity(没有其他 Activity 开始)怎么办?
并且:
- 当叶子 Activity 结束时,我应该怎么做才能播放爆炸过渡?
- 如果我想播放一个共享元素过渡到它的父级Activity,而不是反向播放怎么办?
我认为这将帮助您完成 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());
}
我有一个 Activity 将退出转换设置为爆炸,如下所示:(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);
...
}
...
当我像这样开始另一个 Activity 时:
startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
爆炸过渡出现。然而,我想在按下后退按钮(完成 activity)时播放爆炸过渡,但它并没有像我预期的那样工作。
所以退出过渡只是为了进入下一个Activity还是什么?如果 Activity 是我的应用程序中的叶子 Activity(没有其他 Activity 开始)怎么办?
并且:
- 当叶子 Activity 结束时,我应该怎么做才能播放爆炸过渡?
- 如果我想播放一个共享元素过渡到它的父级Activity,而不是反向播放怎么办?
我认为这将帮助您完成 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());
}