J'ai travaillé avec une ExpandableList personnalisée (voir l'exemple ci-dessous) où chaque élément a toujours un enfant. Cet enfant se compose de trois parties. Chaque partie comporte un en-tête (barres rouges) et, en dessous, un élément Empty OU une liste d'éléments. La longueur de cette liste peut varier.
La première façon dont j'ai essayé de le faire est d'ajouter un ViewStub sous l'élément vide, que j'ai gonflé avec une vue personnalisée, qui contenait également un ViewStub à la fin que j'ai gonflé à son tour pour l'élément suivant, ajoutant ainsi des éléments de manière récursive pour créer cette sorte de liste d'éléments. Malheureusement, cela a entraîné des StackOverflowError lorsque la liste devenait trop longue (avec des listes courtes, cela fonctionnait parfaitement).
Lors de ma deuxième tentative, j'ai donc essayé d'utiliser un ListView avec un adaptateur personnalisé à la place. Malheureusement, cette liste n'utilisait qu'une petite partie de mon écran et le reste des éléments était caché derrière l'en-tête de la partie suivante (cette mini liste semblait pouvoir être scrollée car une seconde barre de défilement apparaissait à côté d'elle, mais elle ne défilait pas. Non pas que je considérerais ce défilement à l'intérieur d'une liste défilante comme une bonne solution, mais je voulais juste le mentionner).
Est-ce que quelqu'un peut me dire comment je peux dire à cette liste d'éléments de ne pas être scrollable et de prendre toute la place dont elle a besoin (est-ce qu'elle sait quelle taille elle va avoir quand le noeud enfant est créé ? ?) ou m'aider avec une solution alternative à mon problème ? (Ooh, et j'ai envisagé de mettre une quantité impie de ViewStubs à l'intérieur de mon layout, mais cela semble tout simplement idiot et vraiment une mauvaise pratique. Corrigez-moi si je me trompe)