ExpandableListview - 如何在单击另一个项目时关闭上一个打开的项目?
ExpandableListview - How do I close the previous opened item, when another item is clicked?
当在可扩展列表视图上单击另一个项目时,如何关闭上一个打开的项目?
我参考这个教程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://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;
}
});