package com.lgvalle.material_animations; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.graphics.drawable.DrawableCompat; import android.transition.ChangeBounds; import android.transition.Slide; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; /** * Created by lgvalle on 05/09/15. */ public class SharedElementFragment1 extends Fragment { private static final String EXTRA_SAMPLE = "sample"; public static SharedElementFragment1 newInstance(Sample sample) { Bundle args = new Bundle(); args.putSerializable(EXTRA_SAMPLE, sample); SharedElementFragment1 fragment = new SharedElementFragment1(); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_sharedelement_fragment1, container, false); final Sample sample = (Sample) getArguments().getSerializable(EXTRA_SAMPLE); final ImageView squareBlue = (ImageView) view.findViewById(R.id.square_blue); DrawableCompat.setTint(squareBlue.getDrawable(), sample.color); view.findViewById(R.id.sample2_button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNextFragment(sample, squareBlue, false); } }); view.findViewById(R.id.sample2_button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNextFragment(sample, squareBlue, true); } }); return view; } private void addNextFragment(Sample sample, ImageView squareBlue, boolean overlap) { SharedElementFragment2 sharedElementFragment2 = SharedElementFragment2.newInstance(sample); Slide slideTransition = new Slide(Gravity.RIGHT); slideTransition.setDuration(getResources().getInteger(R.integer.anim_duration_medium)); ChangeBounds changeBoundsTransition = new ChangeBounds(); changeBoundsTransition.setDuration(getResources().getInteger(R.integer.anim_duration_medium)); sharedElementFragment2.setEnterTransition(slideTransition); sharedElementFragment2.setAllowEnterTransitionOverlap(overlap); sharedElementFragment2.setAllowReturnTransitionOverlap(overlap); sharedElementFragment2.setSharedElementEnterTransition(changeBoundsTransition); getFragmentManager().beginTransaction() .replace(R.id.sample2_content, sharedElementFragment2) .addToBackStack(null) .addSharedElement(squareBlue, getString(R.string.square_blue_name)) .commit(); } }