使用
animateListItem(view, prevPosition < position);
OR
setLayoutAnimation
嘗試的適配器的getView
OR onBindViewHolder方法:
public static void setLayoutAnimation(Activity activity, ListView listView, Integer anim, int duration) {
anim = (anim == null || anim == 0) ? R.anim.abc_slide_in_bottom : anim;
Animation animation = AnimationUtils.loadAnimation(activity, anim);
duration = duration <= 0 ? 500 : duration;
animation.setDuration(duration);
LayoutAnimationController controller = new LayoutAnimationController(animation, 1.0f);
listView.setLayoutAnimation(controller);
}
public static Animation slideFromTop, slideFromBottom;
public static void initAnim(Activity activity)
{
slideFromTop = AnimationUtils.loadAnimation(activity, R.anim.abc_slide_in_top);
slideFromTop.setDuration(500);
slideFromBottom = AnimationUtils.loadAnimation(activity, R.anim.abc_slide_in_bottom);
slideFromBottom.setDuration(500);
}
public static void animateListItem(Activity activity, View view, boolean slideInBottom) {
try {
if (slideInBottom)
{
view.startAnimation(slideFromBottom);
}
else
{
view.startAnimation(slideFromTop);
}
} catch (Throwable t) {
t.printStackTrace();
}
}