oligazar
6/5/2017 - 11:21 AM

Fragment to Fragment Shared Element Transition

Fragment to Fragment Shared Element Transition

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <changeBounds/>
    <changeTransform/>
    <changeClipBounds/>
    <changeImageTransform/>
</transitionSet>
recyclerView.addOnItemTouchListener(GalleryPictureAdapter.RecyclerTouchListener(activity.applicationContext, recyclerView, object : GalleryPictureAdapter.ClickListener {
            override fun onClick(view: View, position: Int) {
                val newFragment = SlideshowFragment.newInstance(ArrayList(images.map { it.path }), position)

                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    newFragment.sharedElementEnterTransition = DetailsTransition()
                    newFragment.enterTransition = Fade()
                    exitTransition = Fade()
                    newFragment.sharedElementReturnTransition = DetailsTransition()
                }

                activity.supportFragmentManager
                        .beginTransaction()
                        .addSharedElement(view.findViewById(R.id.thumbnail), position.toString() + "_page")
                        .replace(R.id.container, newFragment)
                        .addToBackStack(null)
                        .commit()
            }

            override fun onLongClick(view: View, position: Int) {}
        }))
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        setSharedElementEnterTransition(TransitionInflater.from(getContext()).inflateTransition(android.R.transition.move));
    }
}