5 ответов:
попробуйте положить это в ваш
ExpandableListAdapter,listViewссылка наExpandableListViewсам по себе. ИlastExpandedGroupPosition- это целочисленная переменная-член, определенная внутри вашего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; }
очень полезно, но как Ань Туан упоминает в комментариях выше, у меня были проблемы с 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; }
этой работал для меня
expandableList.setOnGroupExpandListener(new OnGroupExpandListener() { int previousItem = -1; @Override public void onGroupExpand(int groupPosition) { if(groupPosition != previousItem ) expandableList.collapseGroup(previousItem ); previousItem = groupPosition; } });
сделайте это, чтобы развернуть нажатую группу и свернуть все остальные
public void onGroupExpand(int groupPosition) { for (int i = 0; i < len; i++) { if (i != groupPosition) { expandableListDetailsLevel.collapseGroup(i); } } }это работает для меня.
@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); }
Comments