public TransitionBuilder excludeTarget(final View view, final boolean exclude){ transition.excludeTarget(view, exclude); return this; }
public TransitionBuilder excludeTarget(final String targetName, final boolean exclude) { transition.excludeTarget(targetName, exclude); return this; }
public static void excludeTarget(Object transitionObject, View view, boolean exclude) { Transition transition = (Transition) transitionObject; transition.excludeTarget(view, exclude); }
public static Transition makeEnterTransition() { Transition fade = new Fade(); fade.excludeTarget(android.R.id.navigationBarBackground, true); fade.excludeTarget(android.R.id.statusBarBackground, true); return fade; }
// above I've gotten the sharedElements (Views)... newSharedElement.setTransitionName("sharedProperty"); oldSharedElement.setTransitionName("sharedProperty"); // having android:transitionName in the xml can be easier // This transition handles the shared element move based on the shared tansition name Transition shared = TransitionInflater.from(context).inflateTransition(android.R.transition.move); shared.addTarget(newSharedElement); // create a scene container is a parentView (FrameLayout) of both children Scene scene = new Scene(container, newChild); // everything else is set to Fade, shared element is excluded Transition fade = TransitionInflater.from(context).inflateTransition(android.R.transition.fade); fade.excludeTarget(newSharedElement, true); // combine the translations TransitionSet set = new TransitionSet(); set.addTransition(shared).addTransition(fade); // translationize TransitionManager.go(scene, set);
@Override public void onClick(View view) { Intent intent = new Intent(context, ViewActivity.class); intent.putExtra("NOTIFICATION_ID", reminderList.get(viewHolder.getAdapterPosition()).getId()); // Add shared element transition animation if on Lollipop or later if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { CardView cardView = (CardView) view.findViewById(R.id.notification_card); TransitionSet setExit = new TransitionSet(); Transition transition = new Fade(); transition.excludeTarget(android.R.id.statusBarBackground, true); transition.excludeTarget(android.R.id.navigationBarBackground, true); transition.excludeTarget(R.id.fab_button, true); transition.excludeTarget(R.id.recycler_view, true); transition.setDuration(400); setExit.addTransition(transition); ((Activity) context).getWindow().setSharedElementsUseOverlay(false); ((Activity) context).getWindow().setReenterTransition(null); ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(((Activity) context), cardView, "cardTransition"); ActivityCompat.startActivity(((Activity) context), intent, options.toBundle()); ((RecyclerListener) context).hideFab(); } else { context.startActivity(intent); } } });
for (SharedViews.SharedView sharedView : sharedViews.getSharedViews()) { if (sharedView.getViewId() != 0) { fadeTransition.excludeTarget(sharedView.getViewId(), true); transformTransition.addTarget(sharedView.getViewId()); } else { log.error("Unexpected SharedView configuration."); fadeTransition.excludeTarget(name, true); transformTransition.addTarget(name);
public void setupTransitions() { // Add shared element transition animation if on Lollipop or later if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // Enter transitions TransitionSet setEnter = new TransitionSet(); Transition slideDown = new Explode(); slideDown.addTarget(headerView); slideDown.excludeTarget(scrollView, true); slideDown.setDuration(500); setEnter.addTransition(slideDown); Transition fadeOut = new Slide(Gravity.BOTTOM); fadeOut.addTarget(scrollView); fadeOut.setDuration(500); setEnter.addTransition(fadeOut); // Exit transitions TransitionSet setExit = new TransitionSet(); Transition slideDown2 = new Explode(); slideDown2.addTarget(headerView); slideDown2.setDuration(570); setExit.addTransition(slideDown2); Transition fadeOut2 = new Slide(Gravity.BOTTOM); fadeOut2.addTarget(scrollView); fadeOut2.setDuration(280); setExit.addTransition(fadeOut2); getWindow().setEnterTransition(setEnter); getWindow().setReturnTransition(setExit); } }