鉴于具有共享元素的活性的正常棒棒糖转变,例如, https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition,很常见的是从“回收者视图”视图转换为目标活动的正常视图。
但是,如果是目标视图,也是在recyclerView的视图中,是否有办法使其成为可能(即向ActivityOptionsCompat提供目标视图)?
谢谢!
答案 0 :(得分:4)
绝对可能。这样做你必须遵循以下步骤:
supportPostponeEnterTransition()
推迟目标活动的转换。第3步通常适用于此:
recyclerview.post(new Runnable() {
@Override
public void run() {
supportStartPostponedEnterTransition();
}
});
答案 1 :(得分:0)
根据我的调查,这是不可能的。在共享元素转换可以创建其动画之前,它必须首先捕获每个共享元素的开始和结束状态 - 即它在调用和调用的活动/片段中的位置,大小和外观。通过此信息,转换可以确定每个共享元素视图应如何设置动画。 (通过http://www.androiddesignpatterns.com/2015/01/activity-fragment-shared-element-transitions-in-depth-part3a.html)
官方文档声明了限制:
扩展AdapterView的类(如ListView)以与转换框架不兼容的方式管理其子视图。如果您尝试基于AdapterView为视图设置动画,则设备显示可能会挂起。
http://developer.android.com/training/transitions/overview.html#Limitations