Използвам компонент Spark DropDownlist. Искам да запазя размера на родителския компонент (където се показва избраният елемент) малък, но когато потребителят се опита да избере елемент, полето, което се показва с изборите, искам да е голямо така че да съдържа всички елементи и ако даден елемент е по-голям от размера на родителския компонент, в който той все още се побира и потребителят няма да трябва да прави хоризонтално превъртане. Опитах се да използвам инструмент за изобразяване на елементи с различни ширини, но той включва хоризонтално превъртане на изборите. Ако деактивирам хоризонталното превъртане на родителския компонент (т.е. s:dropdownlist), тогава изборите, които се показват, са ограничени, имам предвид, че част от текста не се показва. Можете ли да предложите възможно решение за това?
Проблем с рендеринга на елементи във Flex Dropdownlist?
Отговори (2)
Току-що го поправих сам.
По принцип създадох потребителска кожа за падащия списък и в персонализирания списък посочих това свойство popupWidthMatchesAnchorWidth="false' за компонента PopupAnchor. и след това създадох инструмент за изобразяване на елементи с ширината, от която се нуждаех, и той проработи.
Забележка: създадох персонализираната кожа за dropdownlist въз основа на съществуващия sking на spark downdownlist и току-що промених това свойство.
Не знам дали се брои, но можете да поставите решението си в отвореното събитие така,
<dropdown open="event.currentTarget.skin.popUp.popUpWidthMatchesAnchorWidth = false;"/>
без създаване на кожа. Ако се опитате да го извикате при завършване на създаването, изскачащият прозорец все още не е създаден и ще получите грешка. Забелязах леко проблясване там, където падащото меню се актуализира. Но това е компилация за отстраняване на грешки и е толкова лека, че може да не се забележи в компилацията на изданието.
Допълнение: Все пак използвам кожата, тъй като съдържанието се променя динамично, може да е по-малко от падащото меню. Така че забелязах, че когато popUpWidthMatchesAnchorWidth е зададено на false, ширината на изскачащия прозорец е по подразбиране 140 или нещо подобно. За да поправя това, добавих обвързване към ширината на списъка, така че изскачащият прозорец винаги ще бъде поне толкова широк, колкото списъкът и ще се разширява, когато е необходимо. За да направите това, добавете свойството minWidth към падащото меню в падащото меню по следния начин:
<s:Group id="dropDown" maxHeight="184" minHeight="22" minWidth="{hostComponent.width}">