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

Dre*_*ejc 72 android expandablelistview

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

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

这很难看.有没有更好的方法来做到这一点?

Jus*_*tin 71

您可以在自定义适配器中的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;
}
Run Code Online (Sandbox Code Playgroud)

格鲁克!

  • 这使他们无法点击 (11认同)
  • @DavidLawson:是的,我的溶剂是固定的 - 扩展它们.如果你扩展它们并且它们是可点击的,你必须处理创建ExpandableListView的地方,比如Drejc的sollution. (2认同)

ral*_*abb 35

将此代码放在适配器上将使expandlist保持打开状态,并禁用其关闭功能.

ExpandableListView mExpandableListView = (ExpandableListView) parent;
mExpandableListView.expandGroup(groupPosition);
Run Code Online (Sandbox Code Playgroud)

这可能是一个小小的工作,但它应该如何工作.它打开所有组(开始时),可以随时关闭

 for ( int i = 0; i < groupList.getCount(); i++ ) {
    groupList.expandGroup(i);
 } 
Run Code Online (Sandbox Code Playgroud)

注意:在可扩展视图上设置适配器后放置此代码,否则可能导致错误.希望能帮助到你.


小智 7

展开所有组

for(int i=0; i < myAdapter.getGroupCount(); i++)
    myExpandableListView.expandGroup(i);
Run Code Online (Sandbox Code Playgroud)

如果你想让它们不可折叠。

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


小智 5

首先填充适配器,而不是将此代码放在oncreate方法中

   int count = adapter.getGroupCount();
                for ( int i = 0; i < count; i++ ) 
                    listView.expandGroup(i);
Run Code Online (Sandbox Code Playgroud)