0

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

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

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

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

我还应该指出,我正在扩展一个Activity不是ListActivity.我的目标 API 10(Gingerbread,2.3)及更高版本。

如果有人有任何指示,我将不胜感激。我已经为此绞尽脑汁好几天了,这让我发疯了。如果我可以提供更多信息,请告诉我。

编辑:这是关于覆盖该onAnimationEnd方法的 SO 帖子。 Android TranslateAnimation 在动画后重置

4

1 回答 1

0

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

于 2012-12-31T02:54:49.490 回答