gpt4 book ai didi

android - 在 ListView 中动画添加项目和项目移动

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:03 24 4
gpt4 key购买 nike

如何在 ListView 中添加新项目或将项目从一个位置移动到另一个位置?我想制作动画效果,就像在这个应用程序中一样:any.do (YouTube)。我正在使用从 ResourceCursorAdapter 扩展的适配器。我应该如何使用 newView 和 bindView 功能来实现这种效果?还是有另一种方法可以做到这一点,比如扩展 ListView 类?我怀疑在 any.do 应用程序中有一个 ScrollView 而不是 Listview。但我认为这是错误的方式,如果列表中有很多项目。有什么想法吗?

最佳答案

要做到这一点,您需要:1.“关闭”元素曾经所在的插槽。2.“打开”列表中的一个插槽,项目将“降落”在该插槽中。3. 在插槽之间移动项目。

要实现第一个动画,您需要为列表项 View 本身设置动画。要使其消失,您可以为其底部边距的值设置动画。我写了一篇关于我在 Any.DO 中做的其他动画的博客文章,我在其中为这个值设置了动画 - http://udinic.wordpress.com/2011/09/03/expanding-listview-items/ .您可以使用相同的动画来为列表项的 View 设置动画。

“打开”动画与关闭动画相同,只是方向相反。您将列表项放置在您的“着陆点”之前,并为其底部边缘向外设置动画,为新项目腾出空间。

在位置之间移动项目相当容易。您需要使用与列表项相同的布局来扩充 View ,用当前项的数据填充它,将它添加到 WindowManager:

WindowManager winManager = (WindowManager) Context.getSystemService(Context.WINDOW_SERVICE);
winManager.addView(..)

并使用以下方式为其坐标设置动画:

winManager.updateViewLayout(..);

动画结束后 - 您可以删除此 View 并刷新列表。

添加项目动画是使用相同的概念完成的。

抱歉,我没有完整的源代码可以在这里提供。在我的博文中,您可以找到展开/关闭动画的代码。

希望这对您有所帮助!

关于android - 在 ListView 中动画添加项目和项目移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11449640/

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