我有一个GridView,按下一个按钮,GridView一次淡入,其中一个视图。这个代码就是:
Animation fadeIn = AnimationUtils.loadAnimation(activity, R.anim.fade_in);
LayoutAnimationController layoutAnimationController = new LayoutAnimationController(fadeIn);
friendsGridView.setLayoutAnimation(layoutAnimationController);
friendsGridView.setVisibility(View.VISIBLE);
这非常好用,但是,如果在动画过程中我向下滑动,所有视图都会突然显示,动画似乎缩短了。我知道GridView会回收视图,所以这对我来说可能不是最佳解决方案,但是当按下按钮时我想让每个视图一次褪色(我不希望它的大小GridView超过~30个视图),如果你向下滑动到还没有褪色的东西,你将不得不等待它淡入(淡入淡出持续时间只有200,并且<30个视图我不会&#39;认为这是一个问题。)
我想知道是否可以根据我上面的代码使用它?或者为了我的目的,我需要创建某种ScrollView
并单独为其中的每个孩子制作动画?
答案 0 :(得分:1)
我设法通过在代码中添加以下内容来实现第二个目标:
gridView.setLayoutAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
gridView.setEnabled(false);
}
@Override
public void onAnimationEnd(Animation animation) {
gridView.setEnabled(true);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
与动画听众不同,这只是在整个LayoutAnimationController
完成任务后才启动一次。在动画完成之前,它使GridView无法供用户使用。