一次只显示一个可扩展列表的子项

ste*_*ory 42 android expandablelistview expandablelistadapter

是否有可能一次只扩展一个孩子ExpandableListView,因此打开第二个孩子会关闭之前打开的孩子?

Blu*_*ell 137

只是为了在代码中确认bos的答案:

    expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
        int previousGroup = -1;

        @Override
        public void onGroupExpand(int groupPosition) {
            if(groupPosition != previousGroup)
                expandableList.collapseGroup(previousGroup);
            previousGroup = groupPosition;
        }
    });
Run Code Online (Sandbox Code Playgroud)


bos*_*bos 36

我不知道有任何自动方法,但你可以实现ExpandableListView.OnGroupClickListener,collapseGroup()除了被点击之外的所有列表组运行.这将做你想要的.

  • 更好的是,使用`ExpandableListView.OnGroupExpandListener`类.此外,您可以跟踪最后一个展开的组,并在展开下一个组时将其折叠(以防止在任意大量的列表项上调用`collapseGroup()`. (19认同)
  • 只是想跟进这个建议完美的工作,我只是跟踪最后一个扩展组并关闭它,然后扩展下一组扩展!谢谢老板和杰森! (3认同)