Code example for LayoutTransition

Methods: getDuration, setAnimator, setDuration, setStagger

0
			@Override 
			public void onCheckedChanged(CompoundButton buttonView,
					boolean isChecked) {
				int duration;
				if (isChecked) {
					mTransition.setStagger(LayoutTransition.CHANGE_APPEARING, 30);
					mTransition.setStagger(LayoutTransition.CHANGE_DISAPPEARING, 30);
					setupCustomAnimation(); 
					duration = 500;
				} else { 
					resetTransition(); 
					duration = 300;
				} 
				mTransition.setDuration(duration);
			} 
		}); 
 
		 
		mCustomAnim.setChecked(true);
	} 
 
	public void resetTransition() { 
		mTransition = new LayoutTransition();
		mContainer.setLayoutTransition(mTransition);
	} 
 
	public void setupCustomAnimation() { 
		PropertyValuesHolder pvhLeft = PropertyValuesHolder.ofInt("left", 0, 1);
		PropertyValuesHolder pvhTop = PropertyValuesHolder.ofInt("top", 0, 1);
		PropertyValuesHolder pvhRight = PropertyValuesHolder.ofInt("right", 0,
				1); 
		PropertyValuesHolder pvhBottom = PropertyValuesHolder.ofInt("bottom",
				0, 1); 
		PropertyValuesHolder pvhXScale = PropertyValuesHolder.ofFloat("scaleX",
				1f, 0f, 1f); 
		PropertyValuesHolder pvhYScale = PropertyValuesHolder.ofFloat("scaleY",
				1f, 0f, 1f); 
 
		 
		//change while adding 
//		ObjectAnimator changeIn = ObjectAnimator 
//				.ofPropertyValuesHolder(this, pvhLeft, pvhTop, pvhRight, 
//						pvhBottom, pvhXScale, pvhYScale) 
//				.setDuration(mTransition.getDuration(LayoutTransition.CHANGE_APPEARING)); 
//		 
//		mTransition.setAnimator(LayoutTransition.CHANGE_APPEARING, changeIn); 
//		changeIn.addListener(new AnimatorListenerAdapter() { 
//			@Override 
//			public void onAnimationEnd(Animator animation) { 
//				super.onAnimationEnd(animation); 
//				View view = (View)((ObjectAnimator)animation).getTarget(); 
//				view.setScaleX(1f); 
//				view.setScaleY(1f); 
//			} 
//		}); 
		 
		 
		 
		//Adding 
		ObjectAnimator animIn = ObjectAnimator.ofFloat(null, "rotationY", 90f,0f)
				.setDuration(mTransition.getDuration(LayoutTransition.APPEARING));
		 
		mTransition.setAnimator(LayoutTransition.APPEARING, animIn);
		 
		animIn.addListener(new AnimatorListenerAdapter() {
			@Override 
			public void onAnimationEnd(Animator animation) {
				super.onAnimationEnd(animation);
				View view = (View)((ObjectAnimator)animation).getTarget();
				view.setRotationY(0f);
			} 
		}); 
		 
		 
		// Changing while Removing 
//        Keyframe kf0 = Keyframe.ofFloat(0f, 0f); 
//        Keyframe kf1 = Keyframe.ofFloat(.9999f, 360f); 
//        Keyframe kf2 = Keyframe.ofFloat(1f, 0f); 
//        PropertyValuesHolder pvhRotation = 
//                PropertyValuesHolder.ofKeyframe("rotation", kf0, kf1, kf2); 
//        final ObjectAnimator changeOut = ObjectAnimator.ofPropertyValuesHolder( 
//                        this, pvhLeft, pvhTop, pvhRight, pvhBottom, pvhRotation). 
//                setDuration(mTransition.getDuration(LayoutTransition.CHANGE_DISAPPEARING)); 
//        mTransition.setAnimator(LayoutTransition.CHANGE_DISAPPEARING, changeOut); 
//        changeOut.addListener(new AnimatorListenerAdapter() { 
//            public void onAnimationEnd(Animator anim) { 
//                View view = (View) ((ObjectAnimator) anim).getTarget(); 
//                view.setRotation(0f); 
//            } 
//        }); 
		 
		// Removing 
        ObjectAnimator animOut = ObjectAnimator.ofFloat(null, "rotationX", 0f, 90f).
                setDuration(mTransition.getDuration(LayoutTransition.DISAPPEARING));
        mTransition.setAnimator(LayoutTransition.DISAPPEARING, animOut);
        animOut.addListener(new AnimatorListenerAdapter() {
            public void onAnimationEnd(Animator anim) {
                View view = (View) ((ObjectAnimator) anim).getTarget();
                view.setRotationX(0f);
            }