我有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
。如何检测所有组当前是否已折叠?
答案 0 :(得分:1)
您有两个等效选项:
实施ExpandableListAdapter
方法:onGroupCollapsed(int groupPosition)
适配器的onGroupExpanded(int groupPosition)
和ExandableListView
。
添加自定义OnGroupCollapseListener
和OnGroupExpandListener
,并分别通过setOnGroupCollapseListener()
和setOnGroupExpandListener()
将其附加到展开式列表视图。
在这两个选项中,您基本上想要做的是跟踪当前扩展的组。一个好方法是将它们保持为Set<Integer>
。折叠组时,从该集中删除其ID。同样,当组展开时,您可以将其ID添加到此集。每次添加/删除后,您检查集的大小。如果它为空,则所有组都会折叠。如果不是 - 某些群体被扩大。
据我所知,没有直接的方法可以找出扩展/折叠的组。