发生布局更改时设置动画
Animate when layout change occurs
在我的 android 应用程序 activity 布局中,我有一个 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 中尝试过,但它会引发一些错误。
有一种简单的方法可以让布局变化动起来。
直接放到xml下一个属性
<LinearLayout
android:animateLayoutChanges="true" <====
android:orientation="vertical">
<LinearLayout
android:orientation="vertical">
<EditText>
<TextView>
</LinearLayout>
<RecyclerView/>
</LinearLayout>
然后在代码中将第二个LinearLayout的可见性改为GONE/VISIBLE。
可以在此处找到更多信息:link to Android Docs
在我的 android 应用程序 activity 布局中,我有一个 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 中尝试过,但它会引发一些错误。
有一种简单的方法可以让布局变化动起来。 直接放到xml下一个属性
<LinearLayout
android:animateLayoutChanges="true" <====
android:orientation="vertical">
<LinearLayout
android:orientation="vertical">
<EditText>
<TextView>
</LinearLayout>
<RecyclerView/>
</LinearLayout>
然后在代码中将第二个LinearLayout的可见性改为GONE/VISIBLE。
可以在此处找到更多信息:link to Android Docs