在RecyclerView中实现共享元素转换到一个视图,有可能吗?

9

有任何发现吗?我也很好奇。 - Sunkas
2个回答

4

完全可以实现。您需要按照以下步骤操作:

  1. 使用 supportPostponeEnterTransition() 延迟目标活动中的转换。
  2. 将适配器设置为 RecyclerView。
  3. 在 RecyclerView 绘制项目后启动延迟的转换。

通常情况下,第三步的操作如下:

recyclerview.post(new Runnable() {
            @Override
            public void run() {
                supportStartPostponedEnterTransition();
            }
        });

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接