當在可擴展列表視圖上單擊另一項時,如何關閉上一個打開的項目?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