gpt4 book ai didi

android - 使用列表/网格/回收器 View 时如何为 Activity 转换设置动画?

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

我正在尝试实现一些新的 Material Design Activity 动画,但我阅读的教程只展示了要动画的 View 属于 Activity 的示例。

在我的应用中,我使用的是 RecyclerView,因此 ImageView 不是 Activity 的一部分:

MainActivity                -> Where I call startActivity()
↳ MainFragment
↳ RecyclerView
↳ RecyclerViewAdapter
↳ ViewHolder
↳ ImageView -> The hero imageView I'd like to animate

根据我的阅读,我应该这样开始新 Activity :

ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, (View) mImageView, "hero_image");

Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, options.toBundle());

问题是:mImageView 不属于 MainActivity。我应该如何通过它?

最佳答案

在您的示例中,您以相同的方式启动 Activity 。 View 是 Activity 的 View Hierarchy 的一部分,因此调用仍然有效。当存在退出转换时,将在 Activity 的 View 层次结构中搜索要在退出转换中使用的退出 View 。它将对象与共享元素的对象进行比较,这样它就不会退出共享元素。

当您使用 RecyclerView 时,您可能不得不担心重新进入转换。 RecyclerView 可以回收任何或所有 View 。如果您没有为共享元素(或潜在的共享元素)指定唯一名称,则必须实现 onMapSharedElements 以确保使用正确的 View 。我总是建议在使用潜在共享元素列表时为每个元素指定一个唯一的 transitionName(动态地)。这样,框架可以自动确定返回时使用哪个 View 。

关于android - 使用列表/网格/回收器 View 时如何为 Activity 转换设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27983362/

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