在我的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,但它会引发一些错误。
答案 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