在没有重新加载活动/布局之前启动活动

Posted

技术标签:

【中文标题】在没有重新加载活动/布局之前启动活动【英文标题】:Start an activity without re-load activity / layout before 【发布时间】:2019-09-11 12:19:48 【问题描述】:

我想在你按下一个条目时开始一个新的活动。

当前 Activity 是一个 ListView,其中包含在滚动时自动加载的项目(无限滚动)。

只要点击一个条目,就会打开一个新的活动(或布局?)(在导航中带有后退按钮)。

https://developer.android.com/design/material/videos/ContactsAnim.mp4

正如这个来自 Android 的视频中一样,只要您再次点击返回,活动就不会重新加载。滚动位置已保存 + 所有图像/条目都相同

最好的方法是什么?

【问题讨论】:

【参考方案1】:

您正在寻找的是共享元素过渡

它适用于 Android 5.x 及更高版本

有关更多详细信息和示例,请参阅 this、this 或 this 链接。

【讨论】:

【参考方案2】:

在你的应用程序中使用这种类型的动画:-

来自第一个活动:-

 Intent intent = new Intent(context, ImageViewActivity.class);
    Pair[] pairs = new Pair[1];
    pairs[0] = new Pair<View, String>(imageView, "fullImage");
    ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation((Activity) context, pairs);

intent.putExtra("fullImage", imageUrl);
            startActivity(intent, options.toBundle());

在第二个活动中,您必须在 xml 文件中设置 transitionName:-

android:transitionName="fullImage"

【讨论】:

以上是关于在没有重新加载活动/布局之前启动活动的主要内容,如果未能解决你的问题,请参考以下文章

从通知启动时防止重新创建活动活动

在获取API调用之前重新启动加载屏幕

重新启动或不活动期间后,Django 站点加载速度非常慢

在方向更改后重新创建活动之前更改意图包数据

如何修复在 Android 中崩溃的活动的重新启动?

应用程序从错误的活动重新启动