当元素从视图中滚动出时,共享元素退出过渡

时间:2018-12-11 18:40:59

标签: android android-recyclerview shared-element-transition

根据本教程,我有一个RecyclerView在显示适配器的帖子ViewHolder的列表之前显示标题ViewHolder,该教程基于https://stackoverflow.com/a/26573338

在两种布局中,我的CardView元素上都有一个共享元素转换,并使用以下教程在RecyclerView上设置了转换: https://mikescamell.com/shared-element-transitions-part-4-recyclerview/index.htmlhttps://stackoverflow.com/a/42330954/

在共享转换中,主活动的CardView展开以填充屏幕。返回过渡应保持这种效果(标头ViewHolder应缩小到原始的CardView大小)。

当我从MainActivity转到DetailActivity时,共享元素转换正常工作。如果标题ViewHolder在视图中,则返回到MainActivity会正常触发转换。即使仅一小部分标头支架可见,过渡效果仍会从屏幕外向下移动。

我遇到的问题是,当标题ViewHolder滚动到视图之外时,返回的Transition不起作用,而是在活动之间出现了看起来像默认淡入淡出的动画。我希望它看起来像上述情况,其中持有人的内容从屏幕外向下动画。

我试图防止标题ViewHolder的回收,认为这可能是问题所在,但两者都不起作用:recyclerView.getRecycledViewPool().setMaxRecycledViews(TYPE_HEADER, 0);holder.setIsRecyclable(false);

我曾尝试像onBackPressed一样滚动到recyclerview的顶部,但这是行不通的-我认为这可能是因为活动在滚动发生之前就已结束:((DetailsFragment) fragment).mLayoutManager.scrollToPosition(0);

有关示例代码,请参见https://gist.github.com/wnrosenberg/38f3da6d7488df6bc48c14ddf1078544

任何帮助将不胜感激。谢谢。

0 个答案:

没有答案