正如标题所说...
我正在使用 Activity 之间的转换,并且我希望为这两个 Activity 设置某种类型的监听器(或事件),用于转换完成时和开始前。
这是创建转换的示例代码:
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());
最佳答案
您可以为您使用的任何转换添加一个监听器。例如:
getWindow().getSharedElementTransition().addListener(listener);
这将监听过渡本身何时开始和结束。但是,它不会为您提供整个 Activity 转换信息。例如,调用 Activity 不知道被调用 Activity 何时完成其转换。
假设顶部的过渡没有标记为半透明,当顶部 Activity 变得不透明时,底层的过渡将被告知停止——onStop()
。这并不意味着过渡已经完成,它只是意味着顶部 Activity 的淡入已经完成。不过,我想不出您在 Activity 停止后想做的事情有多少。不过,当 Activity 是半透明的时,这将无济于事。
所以,不,如果你想让两个 Activity 都知道转换,你必须将其侵入。被调用的 Activity 总是知道转换何时完成(使用监听器)进入,而调用 Activity 总是知道退出时。
关于android - 如何在 Activity 之间的转换完成时得到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941854/