gpt4 book ai didi

Android:动画更改 GridView 内容

转载 作者:IT王子 更新时间:2023-10-29 00:02:33 27 4
gpt4 key购买 nike

我有一个布局的 GridView,可以动态添加或删除到网格中。

在 iOS 中,GridView 项目的原生行为是让网格中的其他项目滑动到已删除项目的位置,或者在添加新项目时滑动以腾出空间。

但在 Android 上,该行为只是为了让更改立即出现在屏幕上。我尝试使用 GridView 的适配器中的一些技巧为每个 getView() 调用添加自定义动画,但这最终导致了一些问题:

Android GridView loading the 0 indexed item in a later index's slot when data set changes

我尝试让各个 View 控制动画,而不是适配器的 getView() 方法,但最终结果是相同的。

我也尝试过使用 GridLayoutAnimationController,像这样:

Animation animation = AnimationUtils.loadAnimation(mActivity, R.anim.grid_item_fadein);
GridLayoutAnimationController controller = new GridLayoutAnimationController(animation, .2f, .2f);
mGrid.setLayoutAnimation(controller);

这适用于所有 GridView 内容的初始加载,但对该内容的任何更改都会像默认情况一样立即弹出。

我觉得这是一个非常简单的功能,应该有更简单的方法来做到这一点。我从网上搜索看到的最好的是a library它为在网格中交换位置的 GridView 项目设置动画,但这不是我想要的(在同一个库中,当您通过删除从 Grid 中删除项目时,我试图避免发生相同的即时效果)。

我还看到的关于 SO 的常见答案是“查看 APIDemos,有大量示例。”但据我所知,实际上并没有动画 GridView 内容更改的示例。

感谢您的帮助。

最佳答案

Chet Haase 发布了一个关于如何正确处理 ListView 动画的精彩视频。基本概念可以应用于 GridViews。您可以找到视频 here .

如果您正在为 API 1.0+ 进行开发,您将无法使用视频中提到的引用动画功能(例如 ViewPropertyAnimator ),除非您使用 NineOldAndroids .

关于Android:动画更改 GridView 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15890847/

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