我正在寻找类似
isExpanded()
或 isCollapsed()
的API,用于判断一个组是否展开或折叠。isExpanded()
或 isCollapsed()
的API,用于判断一个组是否展开或折叠。你可以使用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;
}
});
更多细节请访问此处
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;
}
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;
}
使用这段简单的代码,您可以显示向上或向下的箭头。
最初的回答在您的ExpandableListAdapter
中的getGroupView()
有一个参数,一个布尔值,代表着组是否展开。
来自(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表示组是否已扩展或折叠。
convertView要重用的旧视图(如果可能)。在使用之前,应检查此视图是否非null和适当类型。如果无法将此视图转换为显示正确数据,则此方法可以创建新视图。不能保证convertView先前已由getGroupView(int、boolean、View、ViewGroup)创建。
parent最终将附加到此视图的父级。
isGroupExpanded(int groupPosition)
吗? - George Daramouskas