展开可扩展列表视图中的所有子项

时间:2011-07-29 12:50:43

标签: android expandablelistview

我希望在填充可扩展列表视图时展开所有子项。 目前我的代码如下所示:

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

非常难看。 有更好的方法吗?

5 个答案:

答案 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);
 }