【问题标题】:android 5 activity transition on lower api [duplicate]较低api上的android 5活动转换[重复]
【发布时间】:2015-02-05 07:17:09
【问题描述】:

每次我搜索时,我都会遇到这种“android 5(L) 活动转换仅在 API >= 21 上可用。

这很好,但我可以看到像 QuickPicgoogle inbox 这样的应用程序使用类似的转换,并且在较低的 api 上工作,那么这个应用程序怎么能做这样的事情呢?

我做了什么?

1) 大量搜索:)

2) 使用仅适用于 api >= 21 的ActivityOptionsCompat,如下所示:

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionView, DATA.EXTRA_PASSED_JSON);
Intent intent = new Intent(activity, PhotoViewerActivity.class);
intent.putExtra(DATA.EXTRA_PASSED_JSON, json);
ActivityCompat.startActivity(activity, intent, options.toBundle());

编辑(标记为重复的问题):在这种情况下,它与其他问题不同,因为我说有其他应用程序在较低的 api 中执行此转换,我想知道他们是如何做到的。

【问题讨论】:

  • @alex-lockwood 将来当您决定单独关闭一张重复的票时,请链接到重复的帖子。

标签: android android-5.0-lollipop activity-transition


【解决方案1】:

我们在 Lollipop 中添加了很多东西以使 Activity Transitions 能够正常工作。可以手动进行活动转换(在早期版本中),但在某些情况下您会遇到问题,并且返回转换可能仅在最简单的情况下起作用。 Chet Haase 在此 here 上有一个 devbyte。

片段之间的动画在早期是可能的,尽管 API 不像 Lollipop 的片段过渡那样易于使用。

我们考虑了很多关于将过渡移植到支持库中的早期版本的问题。它可能仍然会发生。如果是这样,我们也应该能够为 Fragment Transitions 做点什么。

【讨论】:

【解决方案2】:

就像您自己说的那样,支持库不支持(所有)低于 5.0 的 Android 版本的转换。不过也有一些选择:

非官方兼容库
https://github.com/andkulikov/transitions-everywhere
https://github.com/takahirom/PreLollipopTransition
https://github.com/lgvalle/Material-Animations

Android KitKat
http://www.doubleencore.com/2013/11/new-transitions-framework/ 以及您的 SDK 示例文件夹中的示例。

【讨论】:

  • tnx,我想我可以做到这一点。
  • 通过你链接的库,我可以在较低的 api 中使用 2 个视图之间的转换,但我不知道如何在 2 个 activity 之间应用转换,你能提示我吗?
  • 您可以加载第二个活动的视图,然后执行不带动画的意图。当然,当你的下一个活动有不同的内容时,这会更加困难。
  • 我在两个活动及其工作之间尝试了github.com/takahirom/PreLollipopTransition。你知道我们是否可以使用它来转换多个元素吗?
  • 我看起来不像 PreLollipopTransition 支持多个元素。如果您想一次传输多个元素,可以尝试使用视图容器(例如相对布局)。您可以尝试使用其他库或将其归档作为未来对库的建议。
猜你喜欢
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2010-10-02
相关资源
最近更新 更多