如何检查组是不是在 Android ExpandableListView 中展开或折叠?
Posted
技术标签:
【中文标题】如何检查组是不是在 Android ExpandableListView 中展开或折叠?【英文标题】:How to check if group is expanded or collapsed in Android ExpandableListView?如何检查组是否在 Android ExpandableListView 中展开或折叠? 【发布时间】:2015-05-08 14:21:47 【问题描述】:我正在寻找像 isExpanded() 或 isCollapsed() 这样的 api,它可以告诉我组是展开还是折叠。
【问题讨论】:
isGroupExpanded (int groupPosition)
或许?
@GeorgeD 哇,谢谢,我完全错过了。
【参考方案1】:
您可以使用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;
);
更多详情,您可以访问这里
http://developer.android.com/reference/android/widget/ExpandableListView.html#setOnGroupClickListener(android.widget.ExpandableListView.OnGroupClickListener)
【讨论】:
【参考方案2】:如果你使用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】: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 旧视图以重用,如果可能的话。在使用之前,您应该检查此视图是否为非空且类型合适。如果无法将此视图转换为显示正确的数据,则此方法可以创建一个新视图。不能保证之前已由 getGroupView(int, boolean, View, ViewGroup) 创建了 convertView。 parent 此视图最终将附加到的父级
【讨论】:
【参考方案4】:正如@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;
【讨论】:
以上是关于如何检查组是不是在 Android ExpandableListView 中展开或折叠?的主要内容,如果未能解决你的问题,请参考以下文章
如何在android中检查网络是不是连接到wifi [重复]
如何在 android 中检查我的 android 设备是不是有互联网连接? [复制]