ExpandableListView - 检测所有组何时折叠

时间:2013-02-06 14:43:37

标签: android expandablelistview

我有ExpandableListView并在扩展群组时执行一些操作:

    @Override
public void onGroupExpanded(int groupPosition) {
    super.onGroupExpanded(groupPosition);
    p = (RelativeLayout)activity.findViewById(R.id.pers);
    p.setVisibility(View.GONE);
    ExpandableListView elw = (ExpandableListView) activity
            .findViewById(android.R.id.list);

    if (groupPosition != lastExpandedGroupPosition) {
        elw.collapseGroup(lastExpandedGroupPosition);
    }
    lastExpandedGroupPosition = groupPosition;

}

我需要在折叠所有组时(或者没有扩展组时)设置RelativeLayout。如何检测所有组当前是否已折叠?

1 个答案:

答案 0 :(得分:1)

您有两个等效选项:

  1. 实施ExpandableListAdapter方法:onGroupCollapsed(int groupPosition)适配器的onGroupExpanded(int groupPosition)ExandableListView

  2. 添加自定义OnGroupCollapseListenerOnGroupExpandListener,并分别通过setOnGroupCollapseListener()setOnGroupExpandListener()将其附加到展开式列表视图。

  3. 在这两个选项中,您基本上想要做的是跟踪当前扩展的组。一个好方法是将它们保持为Set<Integer>。折叠组时,从该集中删除其ID。同样,当组展开时,您可以将其ID添加到此集。每次添加/删除后,您检查集的大小。如果它为空,则所有组都会折叠。如果不是 - 某些群体被扩大。

    据我所知,没有直接的方法可以找出扩展/折叠的组。