RecyclerView增加高度动画不起作用

时间:2019-01-18 13:09:17

标签: android android-recyclerview android-animation

我尝试通过单击“按钮”来增加RecyclerView的高度,然后使用“动画”来减小按钮的点击时的高度。

它正在适当地增加和减少,但是动画不起作用。

这是我的代码。

public void expand(View view) {

    Button button = (Button) view;
    if(button.getText().toString().equalsIgnoreCase("INCREASE")) {

        button.setText("DECREASE");
        final int height = (int) (recyclerView.getHeight() * 2.5);
        Animation a = new Animation() {

            @Override
            protected void applyTransformation(float interpolatedTime, Transformation t) {

                FrameLayout.LayoutParams lp =
                        new FrameLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, height);
                lp.gravity = Gravity.BOTTOM;
                recyclerView.setLayoutParams(lp);
            }
        };
        a.setDuration(2000); // in ms
        recyclerView.startAnimation(a);
    }
    else
    {

        button.setText("INCREASE");
        final int height = (int) (recyclerView.getHeight() / 2.5);
        Animation a = new Animation() {

            @Override
            protected void applyTransformation(float interpolatedTime, Transformation t) {

                FrameLayout.LayoutParams lp =
                        new FrameLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, height);
                lp.gravity = Gravity.BOTTOM;
                recyclerView.setLayoutParams(lp);
            }
        };
        a.setDuration(2000); // in ms
        recyclerView.startAnimation(a);
    }

}

我该怎么做?我不想伸展它。我想通过一些动画效果来增加它的高度。

2 个答案:

答案 0 :(得分:0)

尝试使用值动画器。

header.blade.php

答案 1 :(得分:0)

我遇到了类似的问题,我通过在您的xml布局描述中的容器布局上添加属性android:animateLayoutChanges="true"来解决了这个问题。 例如:

<LinearLayout 
 android:id="@+id/container"
 android:animateLayoutChanges="true">
      <RecyclerView 
       android:id="@+id/recyclerView"
           ...
      />
</LinearLayout>

希望有帮助!