Bonjour à vous tous
Je reste bloqué (depuis très longtemps je n'ai trouvé la solution) sur une incohérence du dropDown de combobox mis à jour.
C'est à dire.
J'ai le dataprovider de combobox remplis, son dropDown correspondant bien au élément et sa largeur correspondant bien à la longueur la plus grande de son contenu.
Hors, lors d'une mise à jour, quand je modifie le dataprovider en y instaurant une nouvelle liste de valeur, le contenu du dropDown est correct mais sa longueur ne l'est (width). Le width garde celui du précédent contenu et n'est pas recalculer en fonction de la nouvelle liste déposé.
Je sais que ce problème était un bug ancré au sdk 3.5 (que je n'ai jamais réussis à réparé), hors je suis passé au sdk 4.1.0 et j'ai toujours ce même bug. Etrange étrange.
La mise à jour ou "listeRegionContinent" est une arrayCollection
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="300"> ... ... <mx:ComboBox id="cRegionContinent" maxWidth="350" x="168" y="100" change="{clickStateContinent()}" labelField="{Application.application.langue}"/>
Rien d'anormal dans le code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 prechRap.cRegionContinent.dataProvider = listeRegionContinent;
Hors sur un autre projet tout basic en 4.1.0 ou je veux tester ça, mes largeur de dropDown combobox se mettent bien à jour en fonction de son contenu.
Dans le deuxième exemple, en cliquant sur le bouton "buton" ou "but" la liste du dataprovider change. J'ai bien une liste différente, le contenu et la largeur du dropdown est correct.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height ="8001" verticalScrollPolicy="off" horizontalScrollPolicy="off" initialize="initializeHandler(event)" creationComplete="creationCompleteHandler(event)" backgroundGradientColors= "[#990066, #0066f]" backgroundGradientAlphas= "[0.4, 0.5]"> ... ... [Bindable] public var listeMenu3 : ArrayCollection; .... .... private function addList() { listeMenu3 = new ArrayCollection([ {label : "Accueil", data : "Accueil"}, {label : "L'autreuytrytcuyiuiiuytxrtcvyubi", data : "L'autre"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, ]); } private function addList2() { listeMenu3 = new ArrayCollection([ {label : "Accueil", data : "Accueil"}, {label : "L'autreuytrytcuyiuiiuytxrtcvyubiyyyyyyyyyyyyyyyyyyyyyyyy", data : "L'autre"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, {label : "tchhhh", data : "tchhhh"}, ]); } .... .... <mx:Button x="48" y="0" label="Button" click="addList()"/> <mx:Button x="48" y="50" click="addList2()" label="but"/> <mx:ComboBox x="190" y="0" dataProvider="{this.listeMenu3}" labelField="label" maxWidth="250"></mx:ComboBox>
Je ne vois pas la différence entre les deux codes; alors auriez vous une idée de pourquoi le rendu diffère ?
Migration foireuse de flex ? (il n'y a juste qu'a changer de compilateur en le spécifiant à eclipse (que j'utilise) pourtant ).
Merci
Partager