pix*_*xel 2 android android-5.0-lollipop activity-transition shared-element-transition
是否有可能在两个不同的应用程序之间使用共享元素转换?
是的,共享元素将在不同的应用程序之间工作 您必须就两个应用程序之间共享的通用名称达成一致.通常这是由@AlexLockwood建议的transitionName完成的,但是视图不必具有相同的名称.如果你这样做,你会得到很多免费的帮助.
在应用程序之间共享元素有一个重要方面 - 它们必须处于同一个任务中.如果活动选项不在同一任务中,它们将被拒绝.
如果要在布局中使用不同的transitionNames,只需执行以下操作:
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(
this, view, "remoteName");
startActivity(intent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)
现在,如果远程应用程序在其布局文件中使用"remoteName"作为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));
}
});
Run Code Online (Sandbox Code Playgroud)
当您共享具有视图列表的内容时,此功能非常重要,其中任何视图都可以共享.例如,联系人列表将包含具有不同transitionNames的所有联系人图像.从单个联系人转到该联系人列表,您需要将单个共享联系人映射到列表中的某个联系人.
| 归档时间: |
|
| 查看次数: |
971 次 |
| 最近记录: |