flex的ComboBox控件都可以直接显示java传过来的List数据,例如
- XML code
<mx:ComboBox id="parentNode" dataProvider="{departments}" labelField="name" />
那为什么
- XML code
<mx:List id="parentNode" dataProvider="{departments}" labelField="name" />
这样就显示不出来,是不是需要把Java传过来的List数据重新处理一下,才能显示,,大侠指点一下。
------解决方案--------------------
1>看一下departments加没加动态绑定标签
[Bindable]
2>数据中是否有name属性
------解决方案--------------------
能把代码都发出来吗?我看下
------解决方案--------------------
看来是绘制出问题了。试试用
spStorehouses.refresh(); 或者
parentNode.validateNow();或者
parentNode.validateDisplayList()
------解决方案--------------------
你用的Flex SDK 是多少? 3.5吧?
还有刚才说的那几个方法都不行吗?
------解决方案--------------------
我这块没有import com.jrosion.comas.PopUpEffect运行不了
你把这个方法改下试试
private function getSpStorehouse(event:ResultEvent):void{
spStorehouses = ArrayCollection(event.result);
parentNode.validateNow();
parentNode.validateDisplayList();
}
我看你的好像加错地方了。
------解决方案--------------------
我这边运行后,无法在线你的错误。。。只能分析代码。可能是Zoom把List里面的文本也加效果了,但放大时没放大,导致显示一半
API上对于Zoom 有这么一句话
将 Zoom 效果应用到使用系统字体呈现的文本时,Flex 缩放整个磅值之间的文本。尽管将 Zoom 效果应用到文本时不必使用嵌入的字体,但将 Zoom 效果应用到嵌入的字体时,它将更加平滑。
注意:当 Container.autoLayout 属性为 false 时,Zoom 效果不起作用。
你再试下把List外面的Box的加个autoLayout="false">
<mx:VBox width="100%" height="100%" horizontalAlign="center" autoLayout="false">
或者 再改变下字体
private function getSpStorehouse(event:ResultEvent):void{
spStorehouses = ArrayCollection(event.result);
parentNode.setStyle("fontSize",12);
parentNode.validateNow();
parentNode.validateDisplayList();
}