正如标题所说......
我正在使用活动之间的转换,并且我希望为这两个活动提供某种类型的监听器(或事件),以便在转换完成时以及在它开始之前。
以下是创建转换的示例代码:
final Intent intent = new Intent(activity, TargetActivity.class);
if (initialQuery != null)
intent.putExtra(EXTRA_INITIAL_QUERY, initialQuery);
final String transitionName = activity.getString(R.string.transition_name);
ViewCompat.setTransitionName(viewToTransitionFromAndTo, transitionName);
final ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity,
viewToTransitionFromAndTo, transitionName);
ActivityCompat.startActivityForResult(activity, intent, requestCode, options.toBundle());
答案 0 :(得分:22)
您可以为您使用的任何转场添加侦听器。例如:
getWindow().getSharedElementTransition().addListener(listener);
这将监听转换本身何时开始和结束。但是,它不会为您提供整个活动转换信息。例如,调用活动不知道被调用活动何时完成其转换。
假设顶部的过渡未标记为半透明,则当顶级活动变得不透明时,将告知基础过渡停止 - onStop()
。这并不意味着过渡已经结束,只是意味着顶级活动的淡入已经结束。但是,一旦活动停止,我想不出你想做的事情。但是,当活动是半透明时,这无济于事。
所以,不,如果你想让这两个活动都了解过渡,你就必须入侵它。被叫活动总是知道转换完成时(使用监听器),并且调用活动总是知道退出。