0

我有一个菜单 ListView,它有一个动态的 SignOut 行,应该只在用户登录时显示。ListView 后面有一个阴影(不设置为页脚,而是设置为 ListView 后面的视图)。当我删除 SignOut 行时,它消失了,但 ListView 的大小没有改变,所以有一个透明的间隙,然后是阴影。我正在使用隐藏 SignOut 行signOutBtn.setVisibility(View.GONE);(我有一个对 signOutBtn 视图的引用,它是一个相对布局)。另外,我已经验证我没有在任何地方使用 View.INVISIBLE,因为我希望这种行为会使用它。

ListViewwrap_content用于高度,我相信这就是问题所在 - 正在计算高度,包括 SignOut 按钮。

所以,问题是,当显示或隐藏一行时,如何使 ListView 动态调整大小?我不希望破坏和重新创建视图,尽管这可能是我接下来会尝试的,因为它是一个相对简单的视图。

PS。如果需要,我可以添加代码示例。

4

1 回答 1

1

最后,我决定只更新适配器数据并根据用户的登录状态删除或添加 signOut 行。这很简单,我能够删除很多基于显示/隐藏按钮的条件,以及用于为 ListView 适配器中的 signOut 按钮分配唯一 ID 的代码,以便我可以查找它以隐藏它.

于 2013-10-02T22:02:38.150 回答