Я хотел бы расширить все дочерние элементы, пока отображается расширенное представление списка.
В настоящее время мой код выглядит следующим образом:
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;
}
});