如何判断ListView数据内容项是第一次出现

泡在网上的日子 / 文 发表于2014-09-17 17:19 次阅读 android,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;
    }
}


收藏 赞 (2) 踩 (0)
上一篇:android 使用ColorMatrix把图变成灰色
ColorMatrix类有一个内置的方法可用于改变饱和度。 ColorMatrix cm = new ColorMatrix(); cm.setSaturation(.5f); paint.setColorFilter(new ColorMatrixColorFilter(cm)); 传入一个大于1的数字将增加饱和度,而传入一个0~1之间的数字会减少饱和度。0值将产
下一篇:fastScrollEnabled:ListView的快速滑动模式,以及滑块的自定义
一、显示ListView快速滑动块图标 设想这样一个场景,当ListView的内容有大于100页的情况下,如果想滑动到第80页,用手指滑动到指定位置,无疑是一件很费时的事情,如果想快速滑动到指定的位置,只需加上ListView的fastScrollEnabled属性等于true,启用快速滑