我想在我的recyclerview中添加动画,我尝试使用animateLayoutChanges但是在启动时崩溃我的应用程序,所以我只是更改了我的适配器并使用了onBindViewHolder中调用的这段代码:
private static int lastPosition = -1;
private void setAnimation(View v, int position){
if( v == null ) {
System.err.println("view is null. No animation");
return;
}
if( position > lastPosition){
TranslateAnimation translateAnimation = new TranslateAnimation(Animation.ABSOLUTE, 0.0F, 1, 0.0F, 1, -1.0F, 1, 0.0F);
translateAnimation.setDuration(300);
v.startAnimation(translateAnimation);
lastPosition = position;
}
}
这是有效的,除了一些视图在我滚动后开始卡在他们的位置。这是在我滚动之前(你已经可以看到第一个项目已经卡住了)和之后:http://imgur.com/a/RDRxu。它不仅是第一个被卡住的项目,在我滚动了一些其他项目开始卡住之后但我无法理解它是否有逻辑