布局更改发生时的动画

时间:2015-09-03 03:26:42

标签: android android-layout android-recyclerview layout-animation

在我的Android应用程序活动布局中,我有一个LinearLayout和RecyclerView,LinearLayout包含一个EditText和TextField,而RecyclerView位于LinearLayout下面。

<LinearLayout 
  android:orientation="vertical">
  <LinearLayout 
    android:orientation="vertical">
     <EditText>
     <TextView>
  </LinearLayout>
  <RecyclerView/>
</LinearLayout>

在某些时候我必须删除RecyclerView上方的LinearLayout。所以我通过给出一些动画效果来隐藏它

LinearLayout.animate().translationY(-LinearLayout.getHeight()).setInterpolator(new DecelerateInterpolator()).alpha(0.0f).setListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                super.onAnimationEnd(animation);
                LinearLayout.setVisibility(View.GONE);
            }
        }).setDuration(HEADER_HIDING_ANIMATION_DURATION);

当动画结束时,视图设置为GONE。然后下面的RecyclerView跳到顶部,它只是跳转而没有任何动画,所有,有没有办法管理它?布局改变的小型动画师可能对我有所帮助。我已经尝试过xml,但它会引发一些错误。

1 个答案:

答案 0 :(得分:6)

有一种简单的方法可以对布局更改进行动画处理。 只需添加xml下一个属性

<LinearLayout 
    android:animateLayoutChanges="true"  <====
    android:orientation="vertical">
    <LinearLayout 
        android:orientation="vertical">
        <EditText>
        <TextView>
    </LinearLayout>
    <RecyclerView/>
</LinearLayout>

然后在代码中将第二个LinearLayout的可见性更改为GONE / VISIBLE。

可在此处找到更多信息:link to Android Docs