2010-01-20 5 views
0

Nous avons besoin d'afficher une liste d'emplacements de rendez-vous. Donc, chaque heure d'un horaire a un ensemble de 10 min. L'exigence est que si nous cliquons sur un bouton fléché à l'emplacement de 8:00, 9:00 heures, la disposition des tranches horaires devrait passer d'une liste verticale à une liste horizontale.Comment réduire la hauteur de la liste en fonction de l'état de son rendu d'élément

Pour cela, nous avons modélisé le système comme suit:

ScheduleComponent -> (contient) -> Liste (durée du programme) Le HourViewComponent est un élément moteur de rendu, qui affiche les fentes 10 mn en fonction des rendez-vous disponibles en utilisant une liste de slots (liste des slots dans les 8:00 heures). Pour la liste des emplacements, nous avons un composant de vue de logement comme élément de rendu.

Maintenant, le problème est que lorsque nous cliquons sur l'emplacement 8:00, nous sommes en mesure de changer le HourViewSlot d'un état VerticalState à un état horizontal. Mais la hauteur du conteneur ne s'effondre pas dans l'état réduit. Il occupe la même taille que la disposition verticale!

Nous avons essayé d'utiliser l'attribut variableRowHeight.

Nous avons essayé de placer le rowHeight le bouton Item Renderer Cliquez événement Handler mais cela provoque toute la liste des éléments hauteur de ligne pour changer. Nous voulons seulement que la hauteur de l'heure actuelle change.

Nous ne sommes pas sûrs maintenant si List est le bon composant à utiliser. S'il vous plaît aidez. link text

Répondre

0

Je pense que vous êtes sur la bonne voie avec List, renderers point et variableRowHeight. Je soupçonne que le HourViewComponent ne recalcule pas sa hauteur ou ne la recalcule pas correctement. Il se peut que rien de ce que vous faites dans le gestionnaire d'événements ne déclenche un appel invalidateSize ou que les tailles soient en quelque sorte calculées dans le mauvais ordre.

Questions connexes