1

我有一个自定义列表视图,其中包含很多文本。我希望当我单击列表视图时,单击的行下会出现其他文本。我设法做到这一点,在 custom_row 中将 TextView 设置为 GONE。 xml,然后在 ClickListener 中将其设置为 VISIBLE .. 但这太小故障了,所以我想制作一个切换动画,如JQUERY的盲人秀......

在此处输入图像描述

如何在 Android 中使用动画制作这个?

4

2 回答 2

0

使用ValueAnimator将 ListView 的高度从 0 更改为最终高度。

您可以在本教程中找到一个非常好的示例

代码如下:

ValueAnimator animator = ValueAnimator.ofInt(intialHeight, finalHeight);    
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator v) {
        int value = (Integer) v.getAnimatedValue(); // get the most recent value calculated by the ValueAnimator 
        ViewGroup.LayoutParams lp = yourLayout.getLayoutParams(); // get the height of your ListView
        lp.height = value; //change the height
        mLinearLayout.setLayoutParams(layoutParams); //update it to the view
    }   
animator.start(); //start the animation
于 2013-11-22T06:15:06.950 回答
0

您可以创建自己的动画并更改项目的高度,例如:

public class ExpandAnimation extends Animation {
...
    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
       super.applyTransformation(interpolatedTime, t);
        if (interpolatedTime < 1.0f) {
            viewLayoutParams.height = heightStart + 
                    (int) (( heightEnd - heightStart) * interpolatedTime);
            animatedView.requestLayout();
        }
    }
}

并在单击时在项目上设置此动画。

于 2013-11-05T13:40:37.457 回答