首页 文章

ListView动画刷新适配器android

提问于
浏览
4

我有一个带适配器的 ListView . 当我单击 ListView 上的某个项目时,适配器将被清除并填充新内容 . 我想应用两个动画,一个是清除适配器时(当从适配器中移除时项目向左滑动),另一个是当新项目添加到适配器时(新元素向右滑动) .

所以点击某个项目时我想做的是:

listView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.slide_to_left));    
clearAdapter();    
listView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.slide_to_right));    
setItems(newItemList);//Refresh adapter with new items

我的问题是只显示第二个动画 .

关于我做错了什么或为什么这不起作用的任何建议?

谢谢 .

Solution

我已经能够解决它添加像这样的动画监听器 .

Animation animationOut = AnimationUtils.loadAnimation(context, R.anim.slide_to_left);
    animationOut.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
            clearAdapter();
        }

        @Override
        public void onAnimationEnd(Animation animation) {
        listView.startAnimation(AnimationUtils.loadAnimation(context, R.anim.slide_to_right));
                setItems(newList);// update content adapter
            }
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });
  listView.startAnimation(animationOut);

它是一种同时显示两个动画的方法吗?当我们清除适配器并将它们滑到左侧时,列表的新内容将从右侧输入动画 .

1 回答

  • 0

    注释掉第二个动画代码(最后两行),然后查看第一个动画是否正常工作 . 如果工作然后尝试在第一个动画和第二个动画之间添加Thread.sleep几秒钟 .

相关问题