gpt4 book ai didi

android - Android Lollipop 中属于不同 Activity 的 fragment 之间的共享元素转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:37 24 4
gpt4 key购买 nike

我在属于一个 Activity 的 fragment 中有一个共享元素。

我想在 Android Lollipop 中使用属于另一个 Activity 的 fragment 的一部分的元素进行共享元素转换。

这可能吗?

我怎样才能做到这一点?

最佳答案

这是可能的。

首先,当您在 fragment 中检测到转换即将发生时,构建一个 Pair<View, String> 的数组。您用 View 和转换名称填充它。

例如,如果您想要从缩略图动画到全宽图像:

  Pair[] pairs = new Pair[1];
pairs[0] = new Pair(thumbnailImage, "THUMBNAIL_IMAGE");

其次,将该数组传递给 fragment 的 Activity ,以便它可以启动实际的转换。 (我正在使用 Otto 传递那个事件,如果你愿意,你可以使用通常的回调)。

然后,在您的 Activity 中,开始第二个 Activity 。 (我为此创建了一个简单的方法)

public static void transitionExpand(Activity activity, Intent intent, Pair<View, String>[] sharedElements) {
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements);

ActivityCompat.startActivity(activity, intent, options.toBundle());
}

在您的第二个 Activity 中,您可以按照通常的方式添加 fragment 。然后,在第二个 fragment 的 onViewCreated() 中方法,你可以调用:

ViewCompat.setTransitionName(fullWidthImage, "THUMBNAIL_IMAGE");

希望对你有帮助

关于android - Android Lollipop 中属于不同 Activity 的 fragment 之间的共享元素转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com