gpt4 book ai didi

android - 如何让 LayoutAnimationController 为 GridView 中的每个 View 设置动画?

转载 作者:行者123 更新时间:2023-11-30 02:49:17 25 4
gpt4 key购买 nike

我有一个 GridView 并在按下按钮时,GridView 淡入,一次淡入它的一个 View 。代码很简单:

Animation fadeIn = AnimationUtils.loadAnimation(activity, R.anim.fade_in);
LayoutAnimationController layoutAnimationController = new LayoutAnimationController(fadeIn);
friendsGridView.setLayoutAnimation(layoutAnimationController);
friendsGridView.setVisibility(View.VISIBLE);

这确实很好用,但是,如果在动画过程中我向下滑动,所有 View 都会突然可见,并且动画似乎被缩短了。我知道 GridView 会回收 View ,所以也许这对我来说不是最佳解决方案,但是当按下按钮时,我希望每个 View 一次淡入一个(我不希望 GridView 的大小超过 ~30 次观看),如果您向下滑动到尚未淡入的内容,您将不得不等待它淡入(淡入持续时间仅为 200,并且观看次数 <30 我认为这不是问题)。

我想知道是否可以根据我上面的代码使用它?或者出于我的目的,我是否需要创建某种类型的 ScrollView 并分别为其每个子项设置动画?

编辑:出于我的目的,一个同样合理甚至更好的解决方案是暂停应用程序,直到屏幕上的 View 全部淡入。由于大多数屏幕只支持最大 30 个 View 中的一小部分,这应该一点时间也没有。所以我想另一个问题是,在上述操作完成之前,我如何暂停任何用户交互?

最佳答案

我通过在代码中前面添加以下内容设法实现了第二个目的:

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 在动画完成之前对用户不可用。

关于android - 如何让 LayoutAnimationController 为 GridView 中的每个 View 设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24482014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com