2017-03-16 44 views
-1

当在可扩展列表视图上单击另一项时,如何关闭上一个打开的项目?ExpandableListview - 如何关闭上一个打开的项目,何时点击另一个项目?

我参考了本教程http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/
但是,当我点击新项目,prevoius项目将不会关闭。

+1

亲爱的!在追求时更加细致。 –

+1

参考http://stackoverflow.com/questions/7862396/show-only-one-child-of-expandable-list-at-a-time – sasikumar

回答

1

因此,您一次只需要一个(或零个)扩展组。对?当您展开另一个代码时,以下代码将关闭先前展开的组。尝试一下。

在这里你去

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; 
     } 
    }); 
+0

Good.Its为我工作。 – CS9423

+0

很高兴工作。您可以随时通过点击勾号来接受答案。快乐编码:) – Nizam

+0

有一个错误,如果要两次点击相同的位置。 –

1

您可以实现ExpandableListView.OnGroupClickListener,在那里你必须调用collapseGroup()所有列表组除了被点击这样的一个:

expandableList.setOnGroupExpandListener(new OnGroupExpandListener() { 
    int previousGroup = -1; 

    @Override 
    public void onGroupExpand(int groupPosition) { 
     if(groupPosition != previousGroup) 
      expandableList.collapseGroup(previousGroup); 
     previousGroup = groupPosition; 
    } 
}); 
0
 expandableList.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 
     int previousGroup = -1; 

     @Override 
     public void onGroupExpand(int groupPosition) { 
      if(groupPosition != previousGroup) 
       expandableList.collapseGroup(previousGroup); 
      previousGroup = groupPosition; 
     } 
    }); 
相关问题