我试过使用dropdownWidth
属性,但是它是静态的。但是如果数据太长,我就不能在下拉菜单中看到完整的文本。
所以我的要求是根据下拉项文本的长宽度设置width
,或者设置水平滚动条。
因为flex不支持水平滚动,所以我重写了Combobox类
<mx:FormItem id="zoneformitem" label="{Localizer.getString('zone','i18n')}" paddingLeft="60" paddingTop="15" required="true">
<mx:ComboBox id="selectedzone" open="campaigns.view.utils.CustomiZeCombo"
selectedIndex="-1"
dropdownWidth="210" width="209" change="validateZoneSelection()"
focusOut="validateZoneSelection()"
dataProvider="{slotProxy.slotWizardVo.currentZones.source.
sortOn('zoneName')}" >
<mx:itemRenderer>
<mx:Component>
public class CustomiZeCombo extends ComboBox{
public function CustomiZeCombo(){
super();
}
override public function open():void {
dropdown.horizontalScrollPolicy = ScrollPolicy.ON;
super.open();
}
override protected function
downArrowButton_buttonDownHandler(event:FlexEvent):void {
dropdown.horizontalScrollPolicy = ScrollPolicy.ON;
super.downArrowButton_buttonDownHandler(event);
}
}
但是我不知道如何调用那个事件来使它工作。非常感谢你的建议。
1条答案
按热度按时间ecfsfe2w1#
尝试在Combobox中使用click()调用以下方法。