¿Cómo obtengo el índice del primer / último grupo visible en un ExpandableListView?

¿Cómo obtengo el índice del primer / último grupo visible en un ExpandableListView?

GetFirstVisiblePosition () y getLastVisiblePosition () son en su mayoría inútiles para ExpandableListViews, porque devuelven el índice de la primera / última celda visible en la lista. Lo que hace una diferencia porque los grupos expandidos cuentan como múltiples células.

Lo que sí necesito es que algunos métodos como getFirstVisibleGroupIndex (), getLastVisibleGroupIndex () o algún método para convertir el valor de "índice de celda visible" de los métodos anteriores a un valor de índice de grupo real (+ hijo).

Nota: OnScrollListener.onScroll (…, int firstVisibleItem, int visibleItemCount, …) sufre el mismo problema si el listener se establece en un ExpandableListView.

¿Estás buscando algo como esto?

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++; } } 

Sé que esta pregunta es vieja, pero para todos los que se tropiezan con ella como lo hice … Basado en la respuesta de sara este es el método que estoy usando ahora:

  public int getFirstVisibleGroup() { int firstVis = list.getFirstVisiblePosition(); long packedPosition = list.getExpandableListPosition(firstVis); int groupPosition = ExpandableListView.getPackedPositionGroup(packedPosition); return groupPosition; } 

Lo mismo debería funcionar con getLastVisiblePosition () …

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.