2010-01-14 4 views
0

J'ai un contrôle de liste qui utilise un itemRenderer personnalisé et un itemEditor personnalisé. Les éléments itemRenderer/Editor sont des champs de texte contenant chacun au moins trois lignes de texte.Flex: Liste avec défilement de type VBOX (lisse)?

La nature de défilement par défaut d'un contrôle de liste est par élément, plutôt que par un certain nombre de pixels, la façon dont un VBOX défile. Je souhaite que mon contrôle de liste ait une apparence plus proche du traitement de texte, où le défilement vers le bas permet de faire défiler une ligne de texte à la fois. Étant donné que chaque élément de liste contient au moins 3 lignes de texte, le défilement permet de passer tous les trois et de positionner l'élément de liste suivant en haut du contrôle de liste.

Des suggestions? J'essayais de comprendre comment écrire une VBOX personnalisée qui pourrait ressembler à une liste, mais je suis novice en matière de programmation - et je ne fais que de la programmation depuis un an. .... Pas vraiment sûr par où commencer.

Merci!

Répondre

0

N'a pas obtenu une réponse à mon commentaire, concernant l'utilisation d'un composant FLex 4 dans notre application.

Cependant, j'ai déduit qu'il n'est pas possible d'avoir une liste à défilement régulier avec une hauteur de ligne variable, si mes exigences sont une grande liste avec beaucoup de contrôles. Étant donné que le contrôle de liste n'instancie pas tous ses éléments à la fois, il ne peut pas déterminer les valeurs de défilement min et max requises en fonction de la hauteur totale de tous les contrôles. Il ne peut déterminer ces valeurs qu'à partir du nombre de contrôles qu'il contient. Bummer :-(

0

Utilisez le contrôle Spark List de Flex 4 (la version bêta est disponible). Son interface "Scroller" est beaucoup plus flexible.

+0

(peut-être) question stupide ... Si je conçois ce composant sur ma machine avec Flex 4, peut-il être compilé, et plus tard incorporé dans un plus grand projet Flex 3 que notre entreprise construit? Je ne suis pas sûr de savoir comment cela fonctionne. Sinon, malheureusement, il ne fera pas beaucoup de bien –

0

J'ai eu un problème similaire en utilisant un moteur de rendu d'objet avec du texte et un pouce.Réparé en rendant la liste rendre tous ses éléments avant l'affichage, envelopper la liste dans un scroller et un groupe, et éteindre . défilement dans la liste elle-même Assurez-vous que vous ne spécifiez pas la hauteur de la liste - laissez-flex faire que

Mon code:. (pour une raison que je devais enfermer la barre de défilement dans un groupe pour que cela fonctionne)

<s:Group width="100%" height="100%"> 
    <s:Scroller width="100%" height="100%" horizontalScrollPolicy="off" id="listScroll"> 
    <s:Group width="100%" height="100%"> 
     <s:List dataProvider="{arrData}" itemRenderer="renderers.ListingItemRenderer" 
     verticalScrollPolicy="off" click="listingSelected()" width="100%" /> 
    </s:Group> 
    </s:Scroller> 
</s:Group> 
Questions connexes