是否有可能在两个不同的应用程序之间使用共享元素转换?Android中两个不同应用程序之间的共享元素转换?
回答
是的,共享元素将在不同的应用程序之间工作。你必须同意在这两个应用程序之间共享一个通用名称。通常,这是通过@AlexLockwood建议的transitionName完成的,但视图不必携带相同的名称。如果你这样做,你会得到很多免费的帮助。
在应用程序之间共享元素有一个重要方面 - 他们必须处于相同的任务。如果活动选项不在同一个任务中,它们将被拒绝。
如果你想在布局中使用不同的transitionNames,你只是这样做:
3210现在,如果远程应用程序中使用“远程名”在其布局文件的transitionName,它没有做任何特别的事情。但是,如果它使用一个不同的名称,则必须在名称映射到一个观点:当你分享的东西,有意见,其中任何一个可以共享的列表
setEnterSharedElementCallback(new SharedElementCallback() {
@Override
public void onMapSharedElements(List<String> names,
Map<String, View> sharedElements) {
// You may want to validate that names contains "remoteName"
// if this can be instantiated with different shared elements
sharedElements.put("remoteName", findViewById(R.id.mySharedElement));
}
});
这个功能是非常重要的。例如,联系人列表将包含具有不同transitionNames的所有联系人图像。从单个联系人到联系人列表,您需要将单个共享联系人映射到列表中的联系人之一。
因此,理论上可以在不同的应用程序中定义两个不同的转换资源? – pixel 2014-11-14 16:04:14
是的。它的行为方式与在同一个应用程序中对不同的活动使用不同的转换方式相同。共享元素退出转换对调用活动起作用,并将延迟共享元素到被调用活动的转移,直到完成。共享元素输入转换将共享元素从初始位置移动到最终位置。退出过渡适用于调用活动并针对离开的视图工作。进入活动对被调用的活动起作用并影响输入视图。 – 2014-11-16 00:18:08
@GeorgeMount您提到,如果主叫和被叫活动不在同一个任务中,共享元素“活动选项”将被拒绝。这对于退出/输入没有任何共享元素的内容转换也是如此吗? – 2014-12-18 22:48:32
- 1. Android的 - 不同的转换与多个共享的元素
- 2. Android - 共享活动/不同应用程序之间的代码
- 3. 在两个Android应用程序之间共享数据/标志
- 4. 在两个android应用程序之间共享sqlite数据库
- 5. 使用共享元素转换与ChangeImageTransform两个活动之间的动画ImageView
- 6. Android之间共享应用程序之间的文件
- 7. 两个iphone应用程序之间的数据共享
- 8. 两个应用程序之间的钥匙串共享
- 9. 两个CodeIgniter应用程序之间的会话共享
- 10. 两个应用程序之间的数据共享
- 11. 在两个应用程序之间共享配置的技巧?
- 12. Android:与碎片共享元素转换
- 13. Android:听片段共享元素转换
- 14. Android共享元素片段转换
- 15. android gif共享元素转换
- 16. Android共享元素转换错误
- 17. 在不同的离子应用程序之间共享CSS
- 18. 在不同的应用程序平台之间共享会话
- 19. 在不同的应用程序之间共享CI模型
- 20. 在不同的Tomcat Web应用程序之间共享凭证
- 21. 在不同的Web应用程序之间共享ASCX控件
- 22. 在两个节点应用程序之间共享会话
- 23. 如何在两个winform应用程序之间共享数据?
- 24. 在两个应用程序之间共享iCloud数据
- 25. DDD实体在两个应用程序之间共享
- 26. 在两个应用程序之间共享本地库
- 27. 在两个web应用程序之间共享spring aspect class
- 28. 在两个Web项目之间共享应用程序设置
- 29. Cakephp在两个应用程序之间共享验证
- 30. 如何在两个应用程序之间共享Sqlite?
理论上,即使两个活动属于不同的应用程序,共享元素转换也应该可以工作。很显然,两个应用程序需要相互协调才能正常工作(即两者都需要在共享元素上设置相同的'transitionName'等)。你自己测试过了吗? – 2014-11-03 18:36:52
@AlexLockwood我没有,但我会因为没有人做;) – pixel 2014-11-03 19:34:04