我从这里拿了我的例子: http://frogermcs.github.io/instamaterial-recyclerview-animations-done-right/
然后我的动画看起来像这样:
private void runEnterAnimation(View view, int position) {
if (position > lastAnimatedPosition) {
lastAnimatedPosition = position;
view.setTranslationY(150*Constants.density);
view.animate()
.translationY(0)
.setInterpolator(new DecelerateInterpolator(3.f))
.setDuration(500)
.start();
}
}
我在onBindViewHolder中调用runEnterAnimation。 现在,如果我滚动列表,它按预期工作。但是当我滑动刷新时,它会同时加载前5个项目。我怎样才能使列表动画一个接一个?
编辑: 所以我检查了一些我可以访问的手机,屏幕适合5个列表项。所以我这样做了:
private void runEnterAnimation(View view, int position) {
if (position > lastAnimatedPosition) {
int speed = 1;
lastAnimatedPosition = position;
if(position < 5)
speed = position+1;
new FadeInAnimation(view).setDuration(speed * 500).animate();
}
}
其中FadeInAnimation是easyAndroidAnimations库中的动画。但。我对结果仍然不满意,因为如果我在刷新后移动列表,很快,第6个对象将比第5个对象更快地消失。但我说到目前为止我要分享我的结果。 我对任何其他建议持开放态度