防止在ListView

时间:2015-07-20 21:00:15

标签: android listview animation android-listview

我有一个listView,其布局动画一次一个地逐渐消失。

  lac = new LayoutAnimationController(AnimationUtils.loadAnimation(this, R.anim.listview_2), 0.25f);
    listOptions.setLayoutAnimation(lac);
    listOptions.setLayoutAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
        }

        @Override
        public void onAnimationEnd(Animation animation) {
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }
    });

当用户选择一个项目时,listView会显示一组新项目 - 每个项目一次淡入一个项目。但是,如果当用户选择项目并导致新设置淡入时项目的动画淡入还没有完成,那么这些动画会重叠,导致以前的项目在新的项目淡入时可以看到。它看起来就像ListView上闪烁的小故障一样。

onItemClick(),即使我致电listView.getLayoutAnimation.getAnimation().cancel();我仍然会遇到同样的问题。 我也试过listView.clearAnimation();,但仍然没有用。 我也尝试过:listView.setLayoutAnimation(null);并重置。仍然没有奏效。

看来我无法停止或取消动画! 我想做的就是onItemclick()中的listView来停止动画或清空/清除listView然后将新项目重新加载到listView中并使用动画淡化它们,没有重叠 - 因此 - 没有闪烁的故障。

我不想在动画完成之前禁用listView,然后重新启用,因为它可能会造成漫长的等待时间。

1 个答案:

答案 0 :(得分:0)

ListViews中的动画具有挑战性,这是Google发布RecyclerView的原因之一。但是,此视频可能会为您提供一些线索:https://www.youtube.com/watch?v=8MIfSxgsHIs