ListView动画在notifyDataSetChanged()上重置

时间:2017-09-25 16:37:46

标签: android listview android-animation

我想在将新项目添加到我的ListView(它是一个消息传递应用程序)时添加动画。在我的ArrayAdapter的getView()方法中使用以下代码,这非常好用:

    if (!entry.isAnimationDone() && SharedPrefs.accessSettings(getContext()).getBoolean("ani_message_send", true)) {
        Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.slide_in_bottom);
        animation.setAnimationListener(new AnimationListenerAdapter() {
            @Override
            public void onAnimationEnd(Animation animation) {
                entry.animationFinished();
            }
        });
        convertView.startAnimation(animation);
    }

但我的消息应用程序还实现了消息状态(小图标,指示对方是否已下载或阅读我的消息)。当此状态发生更改时,将调用notifyDataSetChanged()以使UI表示此状态。

问题是,如果在动画仍在进行的情况下发生这种情况经常发生,我的动画将重新启动,这会导致一个小故障的GUI。

我已经在互联网上搜索了一段时间,但我无法找到问题的解决方案。是否有其他方法可以实现添加动画,或者是否存在针对此故障的修复方法?

非常感谢任何帮助。

0 个答案:

没有答案