martes, 13 de septiembre de 2011

Como Fragmentar ExpandableListView

Sabias que la actual version de la Compatibility Library V4 no contiene una version para colocar ExpandableListView dentro de fragmentos,  aun no me explico ¿por que?, es mas incluso hay una tarea abierta para Android #19396 por si quieres participar.

En todo caso la única solución decente... de hecho la única solución que encontré para esta dificultad fue un hilo este hilo para ExpandableListFragment(si nuevamente en SO), y para evitar problemas que puedan aparecer aquí dejo algunas notas de como usar esta Clase.

Una vez tenga esta clase agregada al código de la libreria de compatibilidad, aqui hay ciertas cosas que debes de saber.
  • La version original que esta en stackoverflow tiene un inconveniente que en el onCreateView() instancia un ListView esto dara conflicto al momento de que el Fragmento llame al metodo ensureList() por que no podra encontrar una instancia de ExpandableListView.
  • Segundo es que este fragmento por si solo no tiene los listener: setOnChildClickListener,setOnGroupExpandListener,setOnGroupCollapseListener. Mas bien los contiene pero el truco para activarlos esta en implementar el metodo onCreatedView en tu implementacion de esta clase, simplemente agrega el siguiente código para tener los listener originales:
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
onContentChanged();

}