新しいグループを展開するときに、最後に展開したグループを折りたたむことはできますか?
43401 次
5 に答える
122
これをあなたの中に入れてみてくださいExpandableListAdapter
、それ自体listView
への参照ExpandableListView
です。AndlastExpandedGroupPosition
は、の内部で定義された整数のメンバー変数ですExpandableListAdapter
。
@Override
public void onGroupExpanded(int groupPosition){
//collapse the old expanded group, if not the same
//as new group to expand
if(groupPosition != lastExpandedGroupPosition){
listView.collapseGroup(lastExpandedGroupPosition);
}
super.onGroupExpanded(groupPosition);
lastExpandedGroupPosition = groupPosition;
}
于 2010-11-30T15:06:16.377 に答える
23
非常に役立ちましたが、Anh Tuanが上記のコメントで述べているように、ExpandableListViewが現在選択されているグループの先頭にスクロールバックしないという問題がありました(現在スクロールされている位置、グループの中央のどこかに留まります) 。また、正しい位置にスクロールするには、onGroupClickListener()を追加する必要があります。
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition,
long id) {
// Implement this method to scroll to the correct position as this doesn't
// happen automatically if we override onGroupExpand() as above
parent.smoothScrollToPosition(groupPosition);
// Need default behaviour here otherwise group does not get expanded/collapsed
// on click
if (parent.isGroupExpanded(groupPosition)) {
parent.collapseGroup(groupPosition);
} else {
parent.expandGroup(groupPosition);
}
return true;
}
于 2012-11-09T09:55:02.743 に答える
17
これは私のために働いた
expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
int previousItem = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousItem )
expandableList.collapseGroup(previousItem );
previousItem = groupPosition;
}
});
于 2013-07-11T06:39:30.977 に答える
4
これを行うと、クリックしたグループを展開し、他のすべてを折りたたむことができます
public void onGroupExpand(int groupPosition)
{
for (int i = 0; i < len; i++)
{
if (i != groupPosition)
{
expandableListDetailsLevel.collapseGroup(i);
}
}
}
それは私のために働いています。
于 2012-10-22T09:48:46.847 に答える
2
@Override
public void onGroupExpanded(int groupPosition) {
for(int i=0;i<mGroupCollection.size();i++){
if(i==groupPosition){
System.out.println("Nothing");
}
else{
mExpandableListView.collapseGroup(i);
}
}
super.onGroupExpanded(groupPosition);
}
于 2012-12-17T13:58:58.530 に答える