Gui*_*rme 6 android material-design activity-transition android-recyclerview
我正在尝试实现一些新的Material Design活动动画,但我读过的教程仅显示了要动画的视图属于活动的示例.
在我的应用程序中,我使用的是RecyclerView,所以ImageView它不是活动的一部分:
MainActivity -> Where I call startActivity()
? MainFragment
? RecyclerView
? RecyclerViewAdapter
? ViewHolder
? ImageView -> The hero imageView I'd like to animate
Run Code Online (Sandbox Code Playgroud)
根据我的阅读,我应该开始这样的新活动:
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, (View) mImageView, "hero_image");
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)
问题是:那mImageView不属于MainActivity.我该如何通过呢?
在您的示例中,您以相同的方式启动活动。View 是 Activity 的 View Hierarchy 的一部分,因此调用仍然有效。当存在退出转换时,将搜索活动的视图层次结构以查找要在退出转换中使用的退出视图。它将对象与共享元素的对象进行比较,以便它不会退出共享元素。
当您使用 RecyclerView 时,您可能需要担心重新进入转换。RecyclerView 可以回收任何或所有 View。如果您没有为共享元素(或潜在共享元素)提供唯一名称,则必须实现 onMapSharedElements 以确保使用正确的视图。我总是建议在使用潜在共享元素列表时,为每个元素指定一个唯一的transitionName(动态)。这样框架就可以在返回时自动确定使用哪个视图。
| 归档时间: |
|
| 查看次数: |
1992 次 |
| 最近记录: |