基于BasicAdapter排序的Android动画重置

基于BasicAdapter排序的Android动画重置,android,android-layout,android-animation,Android,Android Layout,Android Animation,这几天来一直困扰着我。我有一个框架布局,布局中的一个元素移动以显示菜单。如果需要,我可以粘贴代码,因为它是我的播放代码,而且我没有使用任何样式,所以有点长。我离题了 当用户按下一个特定的按钮时,它会在一个自定义的LinearLayout上调用一个startAnimation,该自定义的LinearLayout位于另一个股票LinearLayout的顶部。再次按下该按钮会将自定义的LinearLayout放回其原始位置,从而隐藏菜单 我必须创建一个自定义的LinearLayout来覆盖onAnim

这几天来一直困扰着我。我有一个
框架布局
,布局中的一个元素移动以显示菜单。如果需要,我可以粘贴代码,因为它是我的播放代码,而且我没有使用任何样式,所以有点长。我离题了

当用户按下一个特定的按钮时,它会在一个自定义的
LinearLayout
上调用一个
startAnimation
,该自定义的
LinearLayout
位于另一个股票
LinearLayout的顶部。
再次按下该按钮会将自定义的
LinearLayout
放回其原始位置,从而隐藏菜单

我必须创建一个自定义的
LinearLayout
来覆盖
onAnimationEnd
,这样布局就会停止并停留在最终的动画位置(我发现这是基于StackOverflow上的一些其他问题)

当用户实际按下其中一个可见菜单项时,就会出现问题。例如,其中一项对显示的列表进行排序或反向排序。似乎在我调用
BasicAdapter
上的
notifyDataSetChanged
之后,屏幕会自动重画,并且我的菜单被隐藏。我没有关闭菜单的代码,这几乎就像整个活动被重新创建或重置时,列表被告知重画

我还应该指出,我正在扩展一个
活动
而不是
列表活动。
我的目标是API 10(姜饼,2.3)及以上

如果有人有什么建议,我将不胜感激。我已经为此绞尽脑汁好几天了,快把我逼疯了。请让我知道,如果我可以提供任何更多的信息

编辑: 下面是关于重写onAnimationEnd方法的SO帖子。

您是否记录了自己打开的菜单项?如果没有,则意味着您让UI系统为您执行记忆,这意味着这些信息将丢失或变得无用(因为您已更改了项目顺序),因此所有项目都将恢复到其初始状态。
解决方案是将菜单打开/关闭状态与列表中的每个数据相关联,然后在调用适配器的getView方法时,您可以重建正确的UI状态。

谢谢您的帮助。我一直在跟踪菜单打开与否,但我感觉你是对的,UI也在记住一些东西,尽管是“错误”的东西。我最终使用了ScrollView,并通过编程更改了滚动位置。再次感谢你,你迫使我退后一步,重新思考我的方法。