Expand ListView item with animation

后端 未结 5 1421
孤街浪徒
孤街浪徒 2020-12-04 09:35

I have a ListView. Initially, the ListView contains some data. When the user clicks on an item, another layout will be dynamically added to that it

5条回答
  •  暖寄归人
    2020-12-04 09:58

    I think I was looking for the same as was asked, I was looking for a way to animate the expanding of the listview item as some new content is shown (I was just changing the visibility on some views from GONE to VISIBLE). I had used the answer by mirroredAbstraction to help me apply a translate animation (I didn't want a rotate animation):

    
    

    to each of the views. It create a nice effect, but looking closely, the listview item was actually suddenly expanding to the entire size that would be needed, then the animation dropped the views into place. But what I wanted was the effect of the listview item growing down as the views come into visibility.

    I found exactly what I was looking for here: expanding-listview-items

    The blogger has a link to his github sample, here: ExpandAnimationExample

    If you find these sites gone, please inform me and I will make my copy available.

    he put a negative margin on the content to come into visibility as well as setting visibility to GONE:

    android:layout_marginBottom="-50dip"
    

    and wrote an animation manipulating the bottom margin:

    public class ExpandAnimation extends Animation {
    ...
        @Override
        protected void applyTransformation(float interpolatedTime, Transformation t) {
            super.applyTransformation(interpolatedTime, t);
    
            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();
            }
            ...
        }
    }
    

    and it looks very nice. I found his answer to this SO (possible duplicate?) question:

    Adding animation to a ListView in order to expand/collapse content

    Also, please let me know if you know another way to do the same thing.

提交回复
热议问题