I want to animate slide down and slide up on expandablelistview when I click the groupItem.Then I have finish the slide down. public class ExpandAnimation extends Animation { private static final String TAG = "ExpandAnimation"; private View mAnimatedView; private LayoutParams mViewLayoutParams; private int mMarginStart, mMarginEnd; private boolean mIsVisibleAfter = false; private boolean mWasEndedAlready = false;
/** * Initialize the animation * @param view The layout we want to animate * @param duration The duration of the animation, in ms */ public ExpandAnimation(View view, int duration) { setDuration(duration); mAnimatedView = view; mViewLayoutParams = (LayoutParams) view.getLayoutParams(); // if the bottom margin is 0, // then after the animation will end it'll be negative, and invisible. mIsVisibleAfter = (mViewLayoutParams.bottomMargin == 0); mMarginStart = mViewLayoutParams.bottomMargin; Log.i(TAG, "mMarginStart:>>>>>>>"+mMarginStart); mMarginEnd = (mMarginStart == 0 ? (0- view.getHeight()) : 0); Log.i(TAG, "mMarginEnd:>>>>>>>"+mMarginEnd); view.setVisibility(View.VISIBLE); } @Override protected void applyTransformation(float interpolatedTime, Transformation t) { super.applyTransformation(interpolatedTime, t); Log.i(TAG, "applyTransformation-->"+interpolatedTime); if (interpolatedTime < 1.0f) { // Calculating the new bottom margin, and setting it mViewLayoutParams.bottomMargin = mMarginStart + (int) ((mMarginEnd - mMarginStart) * interpolatedTime); // Invalidating the layout, making us seeing the changes we made mAnimatedView.requestLayout(); // Making sure we didn't run the ending before (it happens!) } else if (!mWasEndedAlready) { mViewLayoutParams.bottomMargin = mMarginEnd; mAnimatedView.requestLayout(); if (mIsVisibleAfter) { mAnimatedView.setVisibility(View.GONE); } mWasEndedAlready = true; } } } public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { Log.i(TAG, "getChildView"); @SuppressWarnings("unchecked") String text = ((Map<String, String>) getChild(groupPosition, childPosition)).get("child"); if (convertView == null) { LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = layoutInflater.inflate(R.layout.child, null); } View toolbar = convertView.findViewById(R.id.toolbar); setAnimationView(toolbar); ((LinearLayout.LayoutParams) toolbar.getLayoutParams()).bottomMargin = -75; toolbar.setVisibility(View.GONE); ExpandAnimation expandAni = new ExpandAnimation(toolbar, 1000); toolbar.startAnimation(expandAni); TextView tv = (TextView) convertView.findViewById(R.id.childTo); tv.setText(text); return convertView; } But when I click the groupItem to collapse the group,it doesn't call the getChildView() method.So how can I to call the getChildView() and let it slide up? Thanks. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en