共享元素转换,缩小图像时闪烁

时间:2018-02-27 15:10:24

标签: android android-recyclerview android-transitions

https://youtu.be/n8MdHNYozgs 我在片段和活动之间实现了共享元素转换,如上面的视频

 val intent = Intent(context, Main2Activity::class.java)

    val list = ArrayList<Pair<View, String>>()
    (recyclerView.adapter as Adapter).list.forEachIndexed { index, entity ->
        val itemView = recyclerView.findViewHolderForAdapterPosition(index)?.itemView
        if (itemView != null) {
            list.add(Pair(itemView, entity.id.toString()))
        }
    }
    val options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, *list.toTypedArray())
    startActivity(intent, options.toBundle())

在活动中,我在另一个回收站视图中显示视图。 你能不能给我一个建议,我应该做些什么来避免在缩小图像结束时眨眼?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。问题是我使用itemView作为转换视图:

val itemView = recyclerView.findViewHolderForAdapterPosition(index)?.itemView
    if (itemView != null) {
        list.add(Pair(itemView, entity.id.toString()))
    }

但需要使用以下代码:

 val holder = MyRecyclerView.findViewHolderForAdapterPosition(index)
        if (holder != null) {
            with(holder as MyViewHolder) {
                list.add(Pair(this.image, entity.id.toString()))
            }
        }

一切正常。