我正在寻找像isExpanded()或isCollapsed()这样的API来告诉我某个群组是展开还是折叠。
答案 0 :(得分:13)
您可以使用 isGroupExpanded
。
expListViewObj.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
if(parent.isGroupExpanded(groupPosition))
{
// Do your Staff
}
else{
// Expanded ,Do your Staff
}
return false;
}
});
有关详细信息,请访问此处
答案 1 :(得分:1)
getGroupView()
上的ExpandableListAdapter
中有一个参数,一个表示该组扩展的布尔值。
From(http://developer.android.com/reference/android/widget/ExpandableListAdapter.html#getGroupView(int,boolean,android.view.View,android.view.ViewGroup)
获取显示给定组的视图。此视图仅适用于该组 - 将使用getChildView(int,int,boolean,View,ViewGroup)获取组的子视图。
参数
groupPosition返回视图的组的位置
isExpanded组是展开还是折叠
如果可能的话,将旧视图转换为重用。在使用之前,您应该检查此视图是否为非null且具有适当的类型。如果无法转换此视图以显示正确的数据,则此方法可以创建新视图。不能保证convertView以前是由getGroupView(int,boolean,View,ViewGroup)创建的。 parent此视图最终将附加到
的父级
答案 2 :(得分:1)
如果您使用BaseExpandableListAdapter
类,则可以使用getGroupView()
覆盖方法。
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
// Here is your expand list view parent id
// b specify that parent expand or not.
.............
if(b){
imdDownArrow.setVisibility(View.GONE);
imdUpArrow.setVisibility(View.VISIBLE);
}else{
imdDownArrow.setVisibility(View.VISIBLE);
imdUpArrow.setVisibility(View.GONE);
}
...............
return view;
}
因此,使用此简单代码,您可以向上或向下显示箭头
答案 3 :(得分:0)
正如@George D所写,有ExpandableListView .isGroupExpanded(int groupPosition)
方法。那么你可以添加代码来获得扩展组位置或-1
public int getExpandedGroupPosition() {
for (int i = 0; i < listView.getExpandableListAdapter().getGroupCount(); i++) {
if ( listView.isGroupExpanded(i) ) {
return i;
}
}
return -1;
}