我在两个活动之间使用爆炸过渡。我想设置爆炸效果,使其他视图远离被触摸的视图。EpicenterCallback似乎适合这个目的,但我无法让我的过渡真正触发 onGetEpicenter。我究竟做错了什么?
这是我必须设置回调并开始转换的方法:
public void Explode(View view) {
Explode explode = new Explode();
explode.setEpicenterCallback(new MyEpicenterCallback(view));
getWindow().setExitTransition(explode);
Intent intent = new Intent(this, MainActivity.class);
ActivityOptions transitionActivityOptions =
ActivityOptions.makeSceneTransitionAnimation(MainActivity.this);
startActivity(intent, transitionActivityOptions.toBundle());
}
...这是我创建的回调:
public class MyEpicenterCallback extends Transition.EpicenterCallback {
View epicenterView;
public MyEpicenterCallback(View view) {
epicenterView = view;
}
@Override
public Rect onGetEpicenter(Transition transition) {
return new Rect(epicenterView.getLeft(), epicenterView.getTop(), epicenterView.getRight(), epicenterView.getBottom());
}
}
onGetEpicenter 永远不会被调用。谢谢参观!