Actualmente estoy trabajando en un proyecto en el que necesito algo como lo siguiente:de varias capas ExpandableListView
- MainGroup 1 (Expandable)
- SubGroup 1 (Expandable)
- SubSubGroup 1 (Expandable)
- Child View
- Child View
- ...
- SubSubGroup 2 (Expandable)
- Child View
- Child View
- ...
- SubGroup 2 (Expandable)
- SubSubGroup 3 (Expandable)
- Child View
- ...
- SubSubGroup 4 (Expandable)
- Child View
- ...
- SubGroup 3 (Expandable)
- Child View
- ...
- MainGroup 2 (Expandable)
- ...
A lo sumo habría un ExpandableListView
dentro de un ExpandableListView
dentro de un ExpandableListView
- 3 capas de por lo ExpandableListView
:
MainGroup
solo tendría otrasExpandableListView
.SubGroup
tendría otroExpandableListView
a excepción de los dos últimos, que siempre seráChildViews
. (Estoy pensando que esos dos podrían simplemente ser sustituidos por uno paraSubSubGroup
)SubSubGroup
siempre seríanChildViews
.
Mi problema es que creo que no entiendo los principios básicos de cómo los diseños ExpandableListView
son hijos. He visto ejemplos como this, pero no entiendo la funcionalidad.
He intentado simplemente agregar un ExpandableListView
como un niño en otro - pero algo no funciona, ya que solo el primer elemento del interior ExpandableListView
es visible si expande uno de los grupos externos. Sin embargo, al configurar manualmente la altura del contenedor de grupos externos, lo hago lo suficientemente grande como para mostrar todos los elementos en el interior ExpandableListView
. Para que sea óptimo, el cálculo de la altura debe, por supuesto, hacerse sobre la marcha.
Por lo tanto, para llegar a algunas de las preguntas más sólidos:
- Puede alguien darme una explicación del "ciclo de vida"
ExpandableListView
(con esto quiero decir instantation, reutilización de puntos de vista, expandir/oyentes de colapso) incluyendo:- ¿Cómo y cuándo se notifica a un niño
ExpandableListView
que se ha expandido/colapsado? - ¿Cómo sabe el
ExpandableListView
cuánto espacio para que todos los niños puedan caber en un contenedor de grupo?
- ¿Cómo y cuándo se notifica a un niño
- ¿Cuánto beneficio hay en el uso de la
ExpandableListView
para crear lo anterior, en comparación con sólo mezclar juntos mi propia solución utilizando algúnLinearLayouts
y algunosOnClickListeners
?
Editar
Para mi última pregunta podría señalar que no puede estar en cualquier lugar del 1 al 20 + MainGroups
.
su solución ha sido resuelta ...? –
Nunca resolví el problema porque me cambiaron a otro proyecto, pero la respuesta de QuickNick definitivamente habría sido el camino a seguir. – kaspermoerch