当在可扩展列表视图上单击另一项时,如何关闭上一个打开的项目?ExpandableListview - 如何关闭上一个打开的项目,何时点击另一个项目?
我参考了本教程http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/。
但是,当我点击新项目,prevoius项目将不会关闭。
当在可扩展列表视图上单击另一项时,如何关闭上一个打开的项目?ExpandableListview - 如何关闭上一个打开的项目,何时点击另一个项目?
我参考了本教程http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/。
但是,当我点击新项目,prevoius项目将不会关闭。
因此,您一次只需要一个(或零个)扩展组。对?当您展开另一个代码时,以下代码将关闭先前展开的组。尝试一下。
在这里你去
final int[] prevExpandPosition = {-1};
expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
if (prevExpandPosition[0] >= 0 && prevExpandPosition[0] != groupPosition) {
expandableListView.collapseGroup(prevExpandPosition[0]);
}
prevExpandPosition[0] = groupPosition;
}
});
您可以实现ExpandableListView.OnGroupClickListener
,在那里你必须调用collapseGroup()
所有列表组除了被点击这样的一个:
expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
int previousGroup = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousGroup)
expandableList.collapseGroup(previousGroup);
previousGroup = groupPosition;
}
});
expandableList.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
int previousGroup = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousGroup)
expandableList.collapseGroup(previousGroup);
previousGroup = groupPosition;
}
});
亲爱的!在追求时更加细致。 –
参考http://stackoverflow.com/questions/7862396/show-only-one-child-of-expandable-list-at-a-time – sasikumar