Android 如何获取ExpandableListView中第一个/最后一个可见组的索引?
如何获取ExpandableListView中第一个/最后一个可见组的索引 getFirstVisiblePosition()和getLastVisiblePosition()对于ExpandableListView几乎没有用处,因为它们返回列表中第一个/最后一个可见单元格的索引。这会产生不同,因为展开的组计为多个单元格 我需要的是一些方法,比如getFirstVisibleGroupIndex()、getLastVisibleGroupIndex(),或者一些将上述方法中的“可见单元格索引”值转换为实际组(+子)索引值的方法Android 如何获取ExpandableListView中第一个/最后一个可见组的索引?,android,Android,如何获取ExpandableListView中第一个/最后一个可见组的索引 getFirstVisiblePosition()和getLastVisiblePosition()对于ExpandableListView几乎没有用处,因为它们返回列表中第一个/最后一个可见单元格的索引。这会产生不同,因为展开的组计为多个单元格 我需要的是一些方法,比如getFirstVisibleGroupIndex()、getLastVisibleGroupIndex(),或者一些将上述方法中的“可见单元格索引”值
注意:OnScrollListener.onScroll(…,int firstVisibleItem,int visibleItemCount,…)如果在ExpandableListView上设置侦听器,也会遇到同样的问题。是否正在寻找类似的问题
public void listVisibleRowsForExpandableGroup()
{
int firstVis = getFirstVisiblePosition();
int lastVis = getLastVisiblePosition();
int count = firstVis;
while (count <= lastVis)
{
long longposition = getExpandableListPosition(count);
int type = getPackedPositionType(longposition);
if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
int groupPosition = getPackedPositionGroup(longposition);
int childPosition = getPackedPositionChild(longposition);
Log.d("Test","group: " + groupPosition + " and child: " + childPosition );
}
count++;
}
}
public void listVisibleRowsForExpandableGroup()
{
int firstVis=getFirstVisiblePosition();
int lastVis=getLastVisiblePosition();
int count=第一个vis;
虽然(count我知道这个问题由来已久,但对于像我一样偶然发现它的每个人来说。。。
根据sara的回答,这是我现在使用的方法:
public int getFirstVisibleGroup() {
int firstVis = list.getFirstVisiblePosition();
long packedPosition = list.getExpandableListPosition(firstVis);
int groupPosition = ExpandableListView.getPackedPositionGroup(packedPosition);
return groupPosition;
}
这同样适用于getLastVisiblePosition()