ExpandableListView onExpand siempre desplaza el grupo expandido hacia arriba

Estoy buscando la manera de posicionar el grupo de expansibleListView en la parte superior, cuando se amplía. He intentado onGroupExpand, o en performItemClick de ExpandableListView.

SetSelectedPositionFromTop (int, int), partially funciona, pero si se inicia en un momento cuando el sistema inicia su propio desplazamiento, que la lista se overscrolled, y el grupo está fuera de la pantalla.

Lo siento por la descripción desordenada, pero es difícil decirlo sin mostrar exactamente lo que necesito.

Cambie el modo de transcripción a deshabilitado.

android:transcriptmode="disabled" 

En el diseño de lista expandible.

Ponga esto en su adaptador:

 public void onGroupExpanded(final int groupPosition) { super.onGroupExpanded(groupPosition); listView.setSelectedGroup(groupPosition); } 

Pruebe setSelection (groupPosition) en onGroupExpand (int groupPosition).

He intentado muchas soluciones, pero el código a continuación funciona para me.Hope este código será útil para algunos one.Implements el OnGroupExpandListener con en onGroupExpand utilizar el código a continuación

 public void onGroupExpand(final int groupPosition) { super.onGroupExpand(groupPosition); expandableListView.post(new Runnable() { @Override public void run() { expandableListView.setSelection(groupPosition); if(expandableListView.getChildAt(groupPosition)!=null) expandableListView.requestChildRectangleOnScreen(expandableListView.getChildAt(groupPosition), new Rect(0, 0, expandableListView.getChildAt(groupPosition).getRight(), expandableListView.getChildAt(groupPosition).getHeight()), false); } }); } 

Tengo solución a este problema. No es suave, pero funciona bastante bien. Extensible listView messures es que debe moverse por número de niño. Parece, que el sistema piensa que el niño es la misma altura que el padre (grupo), por lo que si pones niño de diferente tamaño que causará problemas con la lista de desplazamiento automático.

Mi solución fue engañar a la lista para pensar que tiene más hijos. Si mi hijo es dos veces mayor que el grupo, recibo información de que el grupo tiene 2 hijos. Ahora, puesto que es lista construida de los datos, hago el cheque en mis datos, hay un dato para 2 childs, o solamente 1, si no tengo datos para el segundo niño, sé que puedo poner la opinión de la altura 0 como segundo niño.

Funcionó bien cuando tuve que hacer la lista con el grupo pequeño, y que con 1 niño grande.

Dado que no hubo respuesta a mi pregunta, publico esta, puede ayudar a alguien.

  • PivotX y PivotY en ScaleAnimation no tiene ningún efecto
  • ¿Cómo puedo determinar si una aplicación de Android se ha creado con una vista web?
  • ¿Android View.postDelayed referencia de la fuga?
  • Agregar Haga clic en Evento en la lista expandible Vea al nino mientras extiende la actividad en lugar de la actividad?
  • ExpandableLists en Android, sólo quiero permitir que una lista de padres se expanda al mismo tiempo
  • ImageButton en el elemento secundario de lista expandible
  • ¿Cómo puedo forzar un sitio a escala para fijar para móviles (Iphone android ..)
  • Cómo obtener un elemento de un niño en ExpandableListView?
  • ANR en SurfaceView en dispositivos específicos solamente - La única solución es un tiempo de sueño corto
  • Cómo mostrar la imagenVer pantalla completa en la imagen¿Haga clic?
  • Cargar HTML estático en Webview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.