Bonjour,
J'ai un formulaire complexe avec une arborescence de composants dépliables dont la taille peut devenir plus grande que la zone visible (une scrollbar verticale apparaît dans ce cas).
Parfois quand l'utilisateur déplie une section qui se trouve vers le bas de l'écran, le composant se déplie mais l'utilisateur doit scroller vers le bas pour voir la partie qui vient de se déplier. J'aimerais lui faciliter la vie en effectuant un scroll automatique pour lui dévoiler cette partie qu'il a manifestement l'intention de consulter.
J'ai commencé à développer une fonction ensureVisible(component) dont le but est de s'assurer que le composant est bien totalement visible et effectue un scroll automatique si ce n'est pas le cas. Je n'arrive pas à avoir un résultat parfait car il y a un tas de paramètres qui interviennent dans le calcul (comme le padding, l'épaisseur des borders, la hauteur des entête des panel, etc ...) et je n'arrive pas à tous les obtenir (comme la hauteur des entêtes d'un panel).
L'idéal pour résoudre ce problème sans trop se prendre la tête serait de trouver dans l'API le moyen de retrouver les dimensions de la clipping area d'un container, c'est à dire sa partie visible. Par exemple pour un panel, j'aimerais avec x,y,width et height du rectangle dans lequel son contenu est affiché.
J'ai cherché partout dans la doc et sur le web, mais je n'ai pas trouvé. Pourtant ça doit bien exister, et je vois pas comment les méthodes contentToLocal() et LocalToContent() pourraient fonctionner sans accéder à ces informations. Le problème est connu en java et la méthode getClipBounds() y répond, mais je n'ai pas trouvé l'équivalent en flex.
Quelqu'un aurait une idée ?
Partager