Как изменить размер выпадающего списка вместе с полем со списком? - PullRequest
0 голосов
/ 17 мая 2010

Справочная информация:
Я делаю некоторую работу с пользовательским интерфейсом, где я позволяю пользователю программно добавлять и изменять размеры элементов управления на холсте.

Проблема:
При изменении размера поля со списком через AS раскрывающийся список остается на той же ширине, что и при первом раскрытии. Таким образом, пользователь размещает поле со списком на странице, нажимает стрелку вниз, видит параметры, выбирает параметр или снова нажимает стрелку вниз, чтобы закрыть, изменяет размер раскрывающегося списка, нажимает стрелку вниз. Теперь раскрывающийся список имеет ту же ширину, что и оригинал. Пробовал простые вещи, такие как установка ширины раскрывающегося списка и аннулирование списка отображения, но он все еще не работает.

Пример:
Пример кода в ожидании

Ответы [ 3 ]

0 голосов
/ 25 июня 2013

comboBox.dropdown.width не работает для меня. Я должен был использовать

comboBox.dropdown.percentWidth = 100;

Кажется, что это работает без вызова invalidateSize ()

0 голосов
/ 04 февраля 2014

В ComboBox переопределение set dataProvider и выполнение следующего, похоже, работало, потому что поле dataProvider связано с событием collectionChange.

ComboBox.calculatePreferredSizeFromData(count:int):Object

override public function set dataProvider(value:Object):void {
    super.dataProvider = value;

    var size:Object = calculatePreferredSizeFromData(dataProvider.length);

    this.dropdownWidth = size.width;
    this.dropdown.width = this.dropdownWidth;
    this.invalidateSize();
}
0 голосов
/ 18 мая 2010

Урезав код до примера, я решил свою проблему. У выпадающего списка есть свойство dropdownWidth. Я пытался установить этот myComboBox.dropdownWidth = newWidth, который не работает (не совсем уверен, почему, не копался в SDK). Однако, если я изменю свой код на myComboBox.dropdown.width = newWidth, он фактически перейдет к выпадающему элементу и изменит его размер напрямую, что работает.

...