Развернуть все дочерние элементы в раскрывающемся списке

Я хотел бы расширить все дочерние элементы, пока отображается расширенное представление списка. В настоящее время мой код выглядит следующим образом:

ExpandableListView listView = (ExpandableListView) findViewById(R.id.view);
int count = viewAdapted.getGroupCount();
for (int position = 1; position <= count; position++)
    listView.expandGroup(position - 1);

что довольно уродливо. Есть ли лучший способ сделать это?

Ответ 1

Вы можете развернуть его в getGroupView в своем пользовательском адаптере:

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    View v = super.getGroupView(groupPosition, isExpanded, convertView, parent);
    ExpandableListView mExpandableListView = (ExpandableListView) parent;
    mExpandableListView.expandGroup(groupPosition);
    return v;
}

Глюк!

Ответ 2

установка этого кода на ваш адаптер заставит список расширений оставаться открытым и отключает функцию закрытия.

ExpandableListView mExpandableListView = (ExpandableListView) parent;
mExpandableListView.expandGroup(groupPosition);

Это может быть небольшая работа, но работает, как это должно быть. Он открывает всю группу (в начале) и может быть закрыт в любое время

 for ( int i = 0; i < groupList.size(); i++ ) {
    groupList.expandGroup(i);
 } 

ПРИМЕЧАНИЕ. поместите этот код после установки адаптера в расширяемом виде, иначе это может привести к ошибке. Надеюсь, поможет.

Ответ 3

сначала заполните адаптер, чем поместите этот код в свой метод oncreate

   int count = adapter.getGroupCount();
                for ( int i = 0; i < count; i++ ) 
                    listView.expandGroup(i);

Ответ 4

Расширение всех групп

for(int i=0; i < myAdapter.getGroupCount(); i++)
    myExpandableListView.expandGroup(i);

, если вы хотите сделать их unCollapseable.

myExpandableListView.setOnGroupClickListener(new OnGroupClickListener() {
  @Override
  public boolean onGroupClick(ExpandableListView parent, View v,int  groupPosition, long id) { 
    return true; 
  }
});