Code example for LayoutTransition

Methods: getDuration, setAnimator, setDuration, setStagger

0
            public void onCheckedChanged( 
                    CompoundButton buttonView
                    , boolean isChecked) {
                long duration;
                if (isChecked) {
                    mTransitioner.setStagger(LayoutTransition
                            .CHANGE_APPEARING, 30);
                    mTransitioner.setStagger(LayoutTransition
                            .CHANGE_DISAPPEARING, 30);
                    setupCustomAnimations(); 
                    duration = 500;
                } else { 
                    resetTransition(); 
                    duration = 300;
                } 
                mTransitioner.setDuration(duration);
            } 
        }); 
    } 
 
    private void setupCustomAnimations() { 
        // Changing while Adding 
        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 pvhScaleX =
                PropertyValuesHolder.ofFloat("scaleX",1f,0f,1f);
        PropertyValuesHolder pvhScaleY =
                PropertyValuesHolder.ofFloat("scaleY",1f,0f,1f);
        final ObjectAnimator changeIn = 
                ObjectAnimator.ofPropertyValuesHolder(
                        this, pvhLeft, pvhTop, pvhRight
                        , pvhBottom, pvhScaleX, pvhScaleY);
        long duration = mTransitioner.getDuration(
                LayoutTransition.CHANGE_APPEARING);
        changeIn.setDuration(duration);
        mTransitioner.setAnimator(
                LayoutTransition.CHANGE_APPEARING, changeIn);
 
        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);
        duration = mTransitioner.getDuration(
                LayoutTransition.CHANGE_DISAPPEARING);
        changeOut.setDuration(duration);
        mTransitioner.setAnimator(
                LayoutTransition.CHANGE_DISAPPEARING, changeOut);
 
        ObjectAnimator animIn = 
                ObjectAnimator.ofFloat(null,"rotationY",90f,0f);
        duration = mTransitioner.getDuration(
                LayoutTransition.APPEARING);
        animIn.setDuration(duration);
        mTransitioner.setAnimator(
                LayoutTransition.APPEARING, animIn);
 
        ObjectAnimator animOut = 
                ObjectAnimator.ofFloat(null,"rotationX",0f,90f);
        duration = mTransitioner.getDuration(
                LayoutTransition.DISAPPEARING);
        animOut.setDuration(duration);
        mTransitioner.setAnimator(
                LayoutTransition.DISAPPEARING, animOut);
         
        animOut.addListener(new AnimatorListenerAdapter() {
            public void onAnimationEnd(Animator anim) {
                View view =