我遇到过许多与我类似的问题。 但我有一个稍微不同的问题,我找不到任何答案。
我为ListView编写了一个CustomAdapter。 我想通过为ListView项目实现动画来尝试新的东西。 因此,我实施了类似于Google+卡动画的自下而上动画。 这是动画的代码。
Animation animation = AnimationUtils.loadAnimation(getContext(), (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
animation.setDuration(400);
rowView.startAnimation(animation);
lastPosition = position;
我已经在CustomAdapter的getView()中编写了这段代码。
在我的应用程序中,我需要两次调用getView()方法。 一切都很好,直到这里。
现在由于多次调用getView()而面临的问题是,卡片动画也会一次又一次地出现,因为我的列表被加载了两次。
如何让我的动画只执行一次?即使它在getView()方法中?
有没有办法做到这一点?
答案 0 :(得分:0)
在GSSListAdapter
类构造函数中再添加一个标志,以检查第一次或第二次调用getView
方法:
public boolean isShowAnimation=false;
GSSListAdapter(...,...,boolean isShowAnimation){
...
this.isShowAnimation=isShowAnimation;
}
现在使用isShowAnimation
检查是否在适配器的getView
方法中执行动画。