android - 如何在 Activity 之间的转换完成时得到通知?

标签 android android-activity android-5.0-lollipop android-transitions

正如标题所说...

我正在使用 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/

相关文章:

android - 从不同的 Activity 方法更新 Activity UI?

android - Activity 布局继承

应该只安装在手机上而不是平板电脑上的 Android 应用程序

Android - 列表项不会立即刷新

android - 只有 recyclerview 单元格中的图标是可点击的

java - Android DialogPreference 宽度

android - 使用 camera2 API 缓慢关注 Nexus 6

android - Android Studio Gradle在Android L上设置了目标API

android - 我的 Android 项目的 build.gradle 文件在哪里?

android - onCreate() 中的 getLocationOnScreen() 仅返回零