如何判断ListView数据内容项是第一次出现
google+的列表界面中,如果一个卡片内容是第一次出现,则会有一个向上缓慢冒进的效果,如果来回滑动,之前已经显示过的内容便不再有动画效果,这是如何判断的呢?
在adapter中声明一个记录最后一次position的变量,初始化为-1
private int mLastAnimatedPosition = -1;
根据getView中的position
判断是否大于mLastAnimatedPosition
,如果大于mLastAnimatedPosition
则需要动画 同时将mLastAnimatedPosition
更新为最近的position
:
private void animateViewIfNecessary(final int position, final View view, final ViewGroup parent) {
if (position > mLastAnimatedPosition) {
animateView(parent, view);
mLastAnimatedPosition = position;
}
}