我希望在填充可扩展列表视图时展开所有子项。 目前我的代码如下所示:
ExpandableListView listView = (ExpandableListView) findViewById(R.id.view);
int count = viewAdapted.getGroupCount();
for (int position = 1; position <= count; position++)
listView.expandGroup(position - 1);
非常难看。 有更好的方法吗?
答案 0 :(得分:69)
您可以在自定义适配器中的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;
}
格鲁克!
答案 1 :(得分:33)
将此代码放在适配器上会使expandlist保持打开状态,并禁用其关闭功能。
ExpandableListView mExpandableListView = (ExpandableListView) parent;
mExpandableListView.expandGroup(groupPosition);
这可能是一个小小的工作,但它应该如何工作。它会打开所有组(开始时)并且可以随时关闭
for ( int i = 0; i < groupList.getCount(); i++ ) {
groupList.expandGroup(i);
}
注意: 在可扩展视图上设置适配器后放置此代码,否则可能会导致错误。 希望能帮助到你。
答案 2 :(得分:5)
首先填充适配器,而不是将此代码放入oncreate方法
int count = adapter.getGroupCount();
for ( int i = 0; i < count; i++ )
listView.expandGroup(i);
答案 3 :(得分:3)
扩展所有群组
for(int i=0; i < myAdapter.getGroupCount(); i++)
myExpandableListView.expandGroup(i);
如果您希望将它们设为无法解析。
myExpandableListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,int groupPosition, long id) {
return true;
}
});
答案 4 :(得分:0)
我已经尝试过列出的回复,但我发现我可以使用getGroupCount()方法来获取组的数量。
使用此方法,我可以迭代并展开ExpandableListView
for (int i = 0; i < myExpandableListView.getExpandableListAdapter().getGroupCount(); i++) {
//Expand group
myExpandableListView.expandGroup(i);
}