Expandable list with animated effect
<p>I am using this animation class to create the animation when i shrink and expand the list on some click event</p>

<pre><code>import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Transformation;
import android.widget.LinearLayout.LayoutParams; 
public class ExpandAnimation extends Animation{
    private View mAnimatedView;
    private LayoutParams mViewLayoutParams;
    private int mMarginStart, mMarginEnd;
    private boolean mIsVisibleAfter = false;
    private boolean mWasEndedAlready = false;

    public ExpandAnimation(View view, int duration){
        setDuration(duration);
        mAnimatedView = view;
        System.out.println(view.getVisibility());
        mViewLayoutParams = (LayoutParams)view.getLayoutParams();
        mIsVisibleAfter = (view.getVisibility() == View.VISIBLE);
        System.out.println("mIsVisibleAfter:- "+ mIsVisibleAfter);
        mMarginStart = mViewLayoutParams.bottomMargin;
        System.out.println("mMarginStart:- "+ mMarginStart);
        mMarginEnd = (mMarginStart == 0 ?(0 - view.getHeight()):0);
        System.out.println("mMarginEnd:- "+mMarginEnd);
        view.setVisibility(View.VISIBLE);   
    }

    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t){
        super.applyTransformation(interpolatedTime, t);
        System.out.println("mMarginEnd:- "+interpolatedTime);
        if(interpolatedTime&lt;1.0f){
            System.out.println("Inside if true");
            mViewLayoutParams.bottomMargin = mMarginStart + (int) ((mMarginEnd - mMarginStart)*interpolatedTime);
            System.out.println("mViewLayoutParams.bottomMargin:- "+mViewLayoutParams.bottomMargin);
            mAnimatedView.requestLayout();
        }else if(!mWasEndedAlready){
            mViewLayoutParams.bottomMargin = mMarginEnd;


            mAnimatedView.requestLayout();
            System.out.println("mIsVisibleAfter:- "+mIsVisibleAfter);
            if(mIsVisibleAfter){
                mAnimatedView.setVisibility(View.GONE);
            }
            mWasEndedAlready = true;
        }
    }
}
</code></pre>

<p>i am using following lines on some click event in my  activity class to create the object of my animation class </p>

<pre><code>            View toolbar = (View) findViewById(R.id.toolbar1);
        ExpandAnimation expandani = new ExpandAnimation(toolbar,500);
        toolbar.startAnimation(expandani);
</code></pre>

<p>My probem is that when click event occurs, my list expand and then shrink but it must stop when it grows completely and shrink when i click on up image.</p>

<p>please let me know that how my animation class is working. i have also tried myself by using SOP statements which you can see in my animation class. </p>
