我看了Slidenerd的youtube视频:
他建议,如果要在回收视图中使用动画,请在回收视图的onBindViewHolder代码中使用以下代码:
ObjectAnimator objectAnimatorTranslateY;
if (position > previousPosition) { //this should only activate animation when scrolling up
objectAnimatorTranslateY = ObjectAnimator.ofFloat(holder.itemView, "translationY", 200, 0 );
objectAnimatorTranslateY.setDuration(300);
objectAnimatorTranslateY.start();
}
previousPosition = position;我已经将previousPosition作为成员变量实例化为0。
代码将回收视图中的物品动画化,这样当你滚动时,它看起来就像从屏幕底部飞进来一样。
代码正在运行,但我未能实现的是,当列表第一次出现在屏幕上时,如何防止代码运行。
我不希望列表项目在你第一次打开应用程序的时候被动画化,但是只有当它滚动的时候。当回收视图第一次出现在屏幕上时,我如何阻止动画师启动?
发布于 2016-07-07 12:17:00
这似乎是一个黑客,但我认为您可以检查该项目的Y-position,并将其与ScreenHeight进行比较。如果view.getX() > getScreenHeight运行显示动画。
https://stackoverflow.com/questions/33186074
复制相似问题