【发布时间】:2013-08-29 11:07:27
【问题描述】:
我在 Flex 中遇到了一个奇怪的问题。我有一个带有 7 个按钮的 ButtonBar,并且总是第五个是不可见的。即使我切换按钮的位置,我也总是看不到第五个按钮的位置。
这是我的代码:
<s:HGroup x="6" y="6" visible="{entityId > 0}">
<mx:ButtonBar height="20" x="10" horizontalGap="4" itemClick="onButtonBarClickHandler(event)" id="buttonBar">
<mx:dataProvider>
<s:ArrayList>
<fx:Object label="xxx" action="AddItem" icon="{_addIcon}" />
<fx:Object label="zzz" action="DeleteItem" icon="{_deleteIcon}" enabled="{_dg.selectedItem as TemplateFile != null}" />
<fx:Object label="yyy" action="Generate" enabled="{_dg.selectedItem.IsTemplate}" />
<fx:Object label="aaa" action="PublishSharePoint" enabled="{_dg.selectedItem.IsTemplate}" />
<fx:Object label="bbb" action="SetDefault"/>
<fx:Object label="Download document" action="DownloadDocument"/>
<fx:Object label="Show Tags" action="ShowTags"/>
</s:ArrayList>
</mx:dataProvider>
</mx:ButtonBar>
</s:HGroup>
你知道这里出了什么问题吗?
【问题讨论】:
-
我已经复制了您的代码并补充了缺失的代码。我无法复制它!
-
我刚刚注意到我还有一个弹出窗口,它也显示此视图,并且我可以看到所有按钮。我真的不知道为什么它在我的主屏幕上不起作用。
-
在这种情况下,您发布的代码不足以回答您的问题。
-
不是解决方案,但您的代码有一种不好的“气味”。通常,在确定是否应启用组件时,是委托给 Presenter/Controller/Supervisor 模型的功能。
-
您可能希望显示包含上述
HGroup的代码(不是在弹出窗口中,而是在缺少按钮的主应用程序中)。屏幕截图也可能有用:缺少按钮的位置是否有空白区域,或者按钮栏是否仅包含 1 个按钮?最后,您可能想要切换到使用 SparkButtonBar组件而不是 MX(使用:<s:ButtonBar>而不是<mx:ButtonBar>
标签: apache-flex flex4 flash-builder