是否有可能在兩個不同的應用程序之間使用共享元素轉換?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在兩個應用程序之間共享用戶ID
- 3. Android的 - 不同的轉換與多個共享的元素
- 4. 不同應用程序之間的Android共享首選項
- 5. Android - 共享活動/不同應用程序之間的代碼
- 6. 在兩個android應用程序之間共享憑據
- 7. 在兩個android應用程序之間共享sqlite數據庫
- 8. 在兩個Android應用程序之間共享數據/標誌
- 9. OpenGraph元素可以在不同的應用程序之間共享嗎?
- 10. 使用共享元素轉換與ChangeImageTransform兩個活動之間的動畫ImageView
- 11. 的Gmail應用程序 - 棒棒堂共享的元素轉換
- 12. 在不同方向的活動之間使用共享元素轉換
- 13. Android之間共享應用程序之間的文件
- 14. 兩個應用程序之間的數據共享
- 15. 兩個CodeIgniter應用程序之間的會話共享
- 16. 兩個應用程序之間的鑰匙串共享
- 17. 在兩個應用程序之間共享配置的技巧?
- 18. 在Linux上的兩個應用程序之間共享數據
- 19. 兩個iphone應用程序之間的數據共享
- 20. Android:聽片段共享元素轉換
- 21. Android共享元素轉換錯誤
- 22. Android:與碎片共享元素轉換
- 23. android gif共享元素轉換
- 24. Android共享元素片段轉換
- 25. 在不同的Tomcat Web應用程序之間共享憑證
- 26. 在不同的離子應用程序之間共享CSS
- 27. 在不同的應用程序平臺之間共享會話
- 28. 在不同的Web應用程序之間共享ASCX控件
- 29. 在不同的應用程序之間共享CI模型
- 30. 共享兩個android應用程序的相同SQLite數據庫
理論上,即使兩個活動屬於不同的應用程序,共享元素轉換也應該可以工作。很顯然,兩個應用程序需要相互協調才能正常工作(即兩者都需要在共享元素上設置相同的'transitionName'等)。你自己測試過了嗎? – 2014-11-03 18:36:52
@AlexLockwood我沒有,但我會因爲沒有人做;) – pixel 2014-11-03 19:34:04