防止在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,然后重新启用,因为它可能会产生尴尬的长等待时间。

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

相关内容

  • 没有找到相关文章

最新更新