Android:确保扩展列表视图中只有一个列表项

时间:2014-02-27 02:31:02

标签: android listview android-listview

所以我目前有ListView有很多列表项。例如,每个列表项在其中都有两个视图View1View2,并且具有长按监听器。默认情况下,View2将被隐藏,直到在列表项上检测到长按。问题是,我希望只有一个列表项同时显示View1View2。列表项的其余部分应仅显示View1。我该如何实现呢?

我正在考虑跟踪应该在适配器的ListFragmentgetView方法中显示两个视图的ListItem的id,我会检查我正在加载的项目应该显示View2。这是一个很好的方法吗?此外,一旦检测到长按,我是否应该抓住所有可见的单元并更新每个View2的可见性?

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我想到了两种可能性:

1)在你的班级中有一个变量'currentItem'。在longClick上,您刷新listview(例如,在适配器上使用notifyDataSetChanged()),强制它重绘当前屏幕上的项目,并隐藏所有项目,除了'currentItem'

2)在你的班级中有一个变量'lastSelectedItem'。在longClick上你做这样的事情(在伪代码中)

currentSelection = // ... item returned from onLongClick
item(lastSelectedItem).hideView();
item(currentSelection).showView();
lastSelectedItem = currentSelection;